定义数组 int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}} int x[][3]={1,2,3,4}前者为什么是错的,后者为什么是对的?我觉得对于后者 1,2,3,4后面可以跟很多省略掉的0,那么数组的第一维度就无法确定了,而对于前
来源:学生作业帮助网 编辑:作业帮 时间:2024/12/01 10:25:51
定义数组 int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}} int x[][3]={1,2,3,4}前者为什么是错的,后者为什么是对的?我觉得对于后者 1,2,3,4后面可以跟很多省略掉的0,那么数组的第一维度就无法确定了,而对于前
定义数组 int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}} int x[][3]={1,2,3,4}
前者为什么是错的,后者为什么是对的?
我觉得对于后者 1,2,3,4后面可以跟很多省略掉的0,那么数组的第一维度就无法确定了,而对于前者1,2,3后面也可以省略掉很多0,那么第二维度也无法确定了.
定义数组 int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}} int x[][3]={1,2,3,4}前者为什么是错的,后者为什么是对的?我觉得对于后者 1,2,3,4后面可以跟很多省略掉的0,那么数组的第一维度就无法确定了,而对于前
你的理解有一半是对的,有一半是错的.对的就是你明确了两个数组都是不确定的,错的就是你误以为0可以有无限个.
你要知道第一维度和第二维度都代表什么.前面代表数组有几行,后面代表每行有几个元素.
如果int [][3] = {1,2,3}那么系统知道了每行有几个,就可以确定数组为a[1][3];
如果int [][3] = {1,2,3,4};那么系统就确定数组为a[2][3]= {1,2,3,4,0,0};0的个数就可以被确定了.
但是如果是int [4][]={1,2,3}那么系统就不知道每行有几个,就没法确定有几个0了.
你可以试试直接定义a[]={1,2,3};是可以的.相当于a[3];