为什么arr [] [3]的大小为36

问题描述 投票:0回答:1
int arr[][3] = {10, 20, 30, 40, 50, 60, 70};
    printf("%d\n", sizeof(arr));

抱歉,这是我第一次来,这是我无法解决的第一个问题,请原谅我的语法为什么在我的编译器中此输出为36?当它只有7个元素且7 * 4 = 28时,请先感谢您的帮助

arrays sizeof
1个回答
0
投票

您已经声明了一个三元组数组,其中包含三个这样的元组:

{10, 20, 30},
{40, 50, 60},
{70,  _,  _},  // _ is unspecified and will be 0

总共是9个整数,9*sizeof(int) == 36

如果您声明的是int[]而不是int[][3],则它的确是7个整数,大小为28。

© www.soinside.com 2019 - 2024. All rights reserved.