int arr[][3] = {10, 20, 30, 40, 50, 60, 70};
printf("%d\n", sizeof(arr));
抱歉,这是我第一次来,这是我无法解决的第一个问题,请原谅我的语法为什么在我的编译器中此输出为36?当它只有7个元素且7 * 4 = 28时,请先感谢您的帮助
您已经声明了一个三元组数组,其中包含三个这样的元组:
{10, 20, 30},
{40, 50, 60},
{70, _, _}, // _ is unspecified and will be 0
总共是9个整数,9*sizeof(int) == 36
如果您声明的是int[]
而不是int[][3]
,则它的确是7个整数,大小为28。