三行代码  ›  专栏  ›  技术社区  ›  Steven Serrano

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

  •  0
  • Steven Serrano  · 技术社区  · 1 年前
    int arr[][3] = {10, 20, 30, 40, 50, 60, 70};
        printf("%d\n", sizeof(arr));
    
    

    对不起,这是我第一次来这里,这是我第一个不能解决的问题,请原谅我的语法

    1 回复  |  直到 1 年前
        1
  •  1
  •   that other guy Anthony Geoghegan    1 年前

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

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

    总共是9英特 9*sizeof(int) == 36

    int[] 而不是 int[][3] ,它确实有7个整数和28个大小。