这个选项四是什么意思,有没有详细的解释哇

img


这个不是应该全赋值城0么,初始化个数/第二位唯长度也不等于一啊

int a[][3]={0,0};
分开看,a[][3]缺省第一个维度的大小,也就是不知道有多少行,但是能知道每行一共三列
而{0,0}是用逗号分隔,所以按照数组的顺序给两个元素赋值,也就是a[0][0] a[0][1],别的元素都不会进行初始化

img

二维数组本质上就是一个一维数组,其中元素都是连续排列的,只是在程序语言中将其表示成了二维的,让你更加方便的操作。题目中只是缺省了行数,但列数为固定的,因此只会赋值00 01,两个位置
至于你说的行数,一共是3列,2个元素难道不占一行么? 总个数 / 列数,这里要用进一法取整

二维数组的初始化了解一下:

这样子写,他其实默认只有一个行,一行有3个数字,前两个初始化为0,0,另外一个默认初始化0

img

img

a[10]={0},会把整个数组所有元素都初始化为0
如果不是这样赋值,那只会给对应的元素赋值,其他元素没有初始值
c语言比较古早,它不像后来的c#,定义一个数组之后会给每一项自动赋初值
c语言就是随便分配一块内存就不管了
如果你不给它赋初值,那么它里面是什么就不一定了