一个简单的C程序之调试

看图,回答图中提出的问题!

第1个回答  2013-08-17
char * arr[3]={"hello","erwei","shuzhu"};是数组指针。3个指针组成的数组,地址没有啥联系,编译随机分配地址,你将字符创位数变了后,地址之间的差就回变。编译器是按没4个字节来分配地址的,字符创长度超过4,就非配8字节,相差8是因为碰巧了,

char * (aqq[3])={"hello","erwei","shuzhu"};是指针数组,数组里的每个元素都是指针,这时候不管字符串长度怎么变,他们的地址都是相差4,因为指针的位数就是int型4位。
第2个回答  2013-08-17
亲你这是二维数组了算是,char* arr[] 和char[][],你第一个那个地址只是数组定义的地址,但是你的数组里存的是char * 的地址(数组的内容)。。所以 不一样,
相似回答