我试图获取多维数组的大小,并使用C编写代码,如下所示。
#include <stdio.h>
char b[3][4];
int main(void){
printf("Size of array b[3]=%d\n", sizeof(b[3]));
printf("Size of array b[2]=%d\n", sizeof(b[2]));
printf("Size of array b[5]=%d\n", sizeof(b[5]));
return 0;
}
在上述所有三个打印语句中,我得到的大小等于4。有人可以解释sizeof
在多维数组的情况下如何工作吗?为什么第三张印刷中的输出相同?
b
是行3
和列的2D字符数组4
。
因此,如果您采取行动,sizeof(b)
您将得到12
。
b[0]
(b[i]
通常)具有类型为size的一维字符数组4
。所以。如果你拿下sizeof (b[0])
你会得到4
。
b[0][0]
(b[i][j]
通常)具有的类型char
。因此,如果您采取,sizeof (b[0][0])
您将得到1
。
sizeof
不依赖于数组索引。即使对于b[0]
和b[100]
,类型也保持不变,即使它可能超出数组内存的范围也是如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句