vomoji 发表于 2019-10-16 13:04:03

萌新关于二维数组的疑惑

二维数组 这样会报错提示初始值设定项太多 他不是从 0开始算的吗 从零开始算 到结束刚刚好啊
int iFishc1[] = { {0,1,2,3,4,5},{0,1,8,1,1,1}, {0,3,4,3,1,1} };
要设成这样多加一个列数才行
int iFishc1[] = { {0,1,2,3,4,5},{0,1,8,1,1,1}, {0,3,4,3,1,1} };
但是 只给一行的数 这样又不报错 ? 蒙圈中 想知道原因
int iFishc1[] ={0,1,2,3,4,5};
工具 vs2017

jackz007 发表于 2019-10-16 13:11:05

本帖最后由 jackz007 于 2019-10-16 13:18 编辑

int iFishc1[][6] = { {0,1,2,3,4,5},{0,1,8,1,1,1}, {0,3,4,3,1,1} };
      末维明明是 6,你却给出个 5 显然要出错

int iFishc1[] ={0,1,2,3,4,5};
      实际上系统把它作为:
int iFishc1[] = {{0 , 1 , 2 , 3 , 4 } , {5 , 0 , 0 , 0 , 0}} ;
      来看待了,只要试试下面的代码就清楚了:
#include <stdio.h>

main()
{
      int iFishc1[] ={0,1,2,3,4,5}                                        ;
      printf("the elements of iFishc1 = %d\n" , sizeof(iFishc1) / sizeof(int)) ;
      printf("iFishc1 = %d\n" , iFishc1)                           ;
}

vomoji 发表于 2019-10-16 13:43:27

jackz007 发表于 2019-10-16 13:11
int iFishc1[] = { {0,1,2,3,4,5},{0,1,8,1,1,1}, {0,3,4,3,1,1} };
      末维明明是 6,你却给出个 ...

谢谢大佬了 搞明白了
页: [1]
查看完整版本: 萌新关于二维数组的疑惑