多维数组的大小

MCG

我试图获取多维数组的大小,并使用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在多维数组的情况下如何工作吗?为什么第三张印刷中的输出相同?

瑞诗凯诗(Rishikesh Raje)

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章