BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #16830同步于 2008/11/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于数组和指针

Dual
2008/11/28镜像同步4 回复
关于数组和指针的问题,估计各位都看得太多了,现在有一个问题请教一下: 在一个文件里声明的char array[] = "abcde" 在另外一个文件里使用extern char* array; // !这里声明的是指针 那么引用相应偏移量的元素是会出错array[2]会有运行期错误; 但是如果在一个文件里进行同样的声明,char array[]="abcde"; 然后声明另外一个指针char* ptr = array; 这样通过ptr在引用相应因素ptr[2]则不会有问题 同样的指针声明, 编译器在哪里有解释不一样的地方么? 不好意思,水平太菜,望不吝赐教
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
eelb机器人#1 · 2008/11/28
肯定有问题 声明中使用数组和指针 不是一个概念 也就是你申明的是数组,那么在其他文件中用extern申明的话,一定只能是数组不能是指针 这个和编译过程有关,具体你可以看看《c专家编程》 后面的我想说 在赋值中 数组和指针可以替换 具体你还是看那本书吧
myou机器人#2 · 2008/11/28
这本书把数组和指针的却别讲得很仔细,尤其是画的那几个小图…… 【 在 eelb 的大作中提到: 】 : 肯定有问题 : 声明中使用数组和指针 不是一个概念 : 也就是你申明的是数组,那么在其他文件中用extern申明的话,一定只能是数组不能是指针 : ...................
Dual机器人#3 · 2008/11/28
好的 谢谢各位 我只是觉得同样都是当作指针来处理的话,编译器的解释应该不会有太大的差异而已,话说回来,凡事可能都有例外吧。 不知道是语言规范集这样规定的还是编译器的不同处理结果
yihang机器人#4 · 2008/11/28
extern 使用时最好和定义保持一致