第1个回答 2009-08-06
每行元素的空位是一样的。但是具体元素个数可以不一样。
比如
char a〔2〕〔30〕={“Hello”,"It's me"}
这两个元素个数就不一样
不一样的时候,每行的字符都是按行首地址存。存到‘\0',然后后面的元素空位
还是按char a〔2〕〔30〕={“Hello”,"It's me"}
来考虑
首先hello存在a[0][0],也就是第一行的首地址开始。然后连续存字母
其实相当于'h','e','l','l','o','\0',分别代表a[0][0],a[0][1]..a[0][5]
然后第二个字符串。存在第二行的首地址,然后连续存
从a[1][0]开始,遇到’\0'结束。
不一样的时候要按照行首地址来进行存储。本回答被提问者采纳
第2个回答 2009-08-06
二维数组的话每行的元素个数都相同,你可以不给它初值,但那个单元已经存在,如果是整型数组的话用0来填充,如果是字符的话用'\0'来填充;
int a[2][3]={{1,2,3},{4,5,},{6}};
char c[2][10]={"china","beijing"};
其实在内存中是按行连续存储的,为了看清楚我按行列形式输出:
1 2 3
4 5 0
6 0 0
'c','h','i','n','a','\0','\0','\0','\0','\0' 和 'b','e','i','j','i','n','g','\0','\0''\0'