指针的菜鸟问题
下面这段代码,运行到把'c'赋值给pstring[3]的时候会报错,是怎么回事呢?
char *pstring;
pstring="this is a test";
printf("[%s]\n",pstring);
printf("[%c]\n",pstring[3]);
pstring[3]='c';
问题点数:20、回复次数:4Top
1 楼lzp229(只想飞)(卡卡)回复于 2005-11-18 12:24:06 得分 12
pstring指向常量字符串。不能改变Top
2 楼cucvcsdn()回复于 2005-11-18 12:44:11 得分 0
好像是哎。那这个常量字符串是放在哪个存储区的呢?一定不允许修改吗?Top
3 楼megaboy(飞天御剑流之杀神一刀斩)回复于 2005-11-18 12:46:54 得分 8
也不是一定不允许,看你的编译器是根据标准的哪个版本来写的,例如tc2.0,它是根据早期c89写的,早期c89把修改字符串常量的行为规定为未定义的,允许不允许修改都可以,而tc2.0是允许的;后来的c89修订本明确规定禁止修改。Top
4 楼cyberHunK(→迈克·老猫←)回复于 2005-11-18 13:16:22 得分 0
对,和版本有关系!在tc2.0下可以更改!Top




