作者zerodevil (冰心无情)
看板Programming
标题Re: [问题] 请问C语言中指标宣告与字串
时间Fri Aug 22 15:22:12 2008
※ 引述《CCChieh (敲口爱)》之铭言:
: int *a=123;
: char *a='c';
: 编译时发生错误,可以理解成系统并没有配置记忆体空间给pointer
: 故pointer指向之记忆体位置并无法存放变数,而发生address access violation
全错
编译期没有memory access, 更不会出现address access violation
compile error单纯只是因为型别不合
: 又见
: char *a="qwe12312";
: 是个常见可行的写法
compile会过是会过啦..不过最好加个const比较好
: 但试问各位板友,编译器如何去解释这段指令
: 记忆体是如何的配置?与上例相比两者差异为何呢?
就compiler的角度来看应该差不多..
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.184.176
※ 编辑: zerodevil 来自: 118.169.184.176 (08/22 15:23)
1F:推 ms6163:不用加就是const了吧 97.118.149.239 08/22 17:08
2F:→ CCChieh:1.型别不合,但执行会出现上述问题 218.174.134.87 08/22 18:38
3F:→ CCChieh:2却完全正确, 为何? 218.174.134.87 08/22 18:38
4F:→ CCChieh:上述问题指address access violation 218.174.134.87 08/22 18:45
5F:推 sunneo:其实我不晓得你的1跟2是什麽 61.227.229.38 08/22 18:59
6F:→ sunneo:int* && char* 那部份的确只能说型别不合 61.227.229.38 08/22 20:40
7F:推 ji3g45j:nono~要给const才会放在.text区段 124.8.86.231 08/24 00:02
8F:推 sunneo:是吗= _=? "xxxabc"这串字串本身就是const 61.227.226.2 08/24 02:02