【问题标题】:a[ ][3] How many rows have been created in this array? [closed]a[ ][3] 在这个数组中创建了多少行? [关闭]
【发布时间】:2014-12-15 10:27:02
【问题描述】:

例如:

int a[][3]={1,2,3,4,5,6,7,8,9};

    int i,j;

    for(i=0; i<3; i++)
        for(j=0; j<3; j++)

    printf("%d",a[j][i]);

我的问题是:我想知道我如何能够找出在for loops 内的这个数组中创建了多少行(不是数组的大小)?

【问题讨论】:

  • printf("%d", sizeof(a)); ?!
  • sizeof(a)/sizeof(*a)
  • 但它显示了数组的大小......但我想知道创建的行数
  • @Rizier123 sizeof(a) 不是元素的计数,除非 sizeof(int) 是 1(这是非常不太可能)。除了格式说明符,第二部分是正确的。

标签: c multidimensional-array


【解决方案1】:

您可以使用sizeof(a)/sizeof(*a) 来获取数组的行。

像这样:

int main(){

int a[][3]={1,2,3,4,5,6,7,8,9};

printf("%d",sizeof(a)/sizeof(*a));//3
}

在这里,如果您将执行sizeof(a),它将给出36,它告诉您尺寸不是否。行数。

【讨论】:

  • "获取数组的大小。" - sizeof(a) 为您提供数组的大小。我认为您指的是数组数组中的数组数量(这就是a 的真正含义)。嗯,你的答案是正确的;描述是另外的。
  • 我想如果你会做 sizeof(a) 它会给 36。
  • 很可能,这确实是数组的大小(以字节为单位)。
  • 谢谢哥们.....得到了答案:)
  • @RazibHossainShuvo 然后您可以将其标记为答案。
猜你喜欢
  • 2021-07-01
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-24
  • 2017-03-15
  • 2014-07-08
相关资源
最近更新 更多