&buf的指针类型的类型是int ()[100]
所以&buf+1即buff+100,即&buff[100],即数组最后一个元素占用内存后的地址位
首先可以肯定的是无论几维的数组在内存中存储时都是连续的,但是数组每个元素在内存中的排列方式具体是按照什么的规则来排呢?这主要取决与编译器,一般有按行排,也有按列排,也有其他的一些排法。所以如果你想用指针表示一个数组中某一个元素的地址,关键还是要了解数组在内存中的具体排列方式。
strcpy(b[0],"CH");
//
上面就是把字符串复制到b[0]的位置,是整个字符串复制的。注意C字符串是后面有带字符串结束符的!!!
strcpy(b[1],"DEF");
//
同理上面是把字符串DEF复制到b[1]的位置,注意原先该位置是H字符。
strcpy(b[2],"ABC");
//
同理。
然后
char
b[30];
strcpy(b[1],"DEF");
strcpy(b[2],"ABC");
printf("%s
\n",b);
没输出,是因为一开始创建b的时候,会默认初始化为空字符串,也就是说b[0]的位置是字符串结束符!!!
所以你就算把DEF复制到b[1]的位置,
输出的时候因为在b[0]的时候已经碰到字符串结束符了,当然输出就是空字符串了啦。
注意一点上面的那些&要去掉的
以上就是关于C语言数组的地址怎么看全部的内容,包括:C语言数组的地址怎么看、C语言中如何用指针来取得多维数组地址的写法、C语言程序设计 关于 数组的取缔地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)