您的位置:首页 > 编程语言 > C语言/C++

C++中C风格字符串的使用

2012-04-14 16:39 441 查看
char*p="abc"; p[1]='x'; cout<<p[1]<<endl; return0;
以上代码会产生运行时错误,去掉p[1]='x';或者把p定义改成charp[]="abc"就能正常运行。


char*p="abc"; cout<<p[1]<<endl; return0;//或charp[]="abc"; p[1]='x'; cout<<p[1]<<endl; return0;
这是因为char*p="abc"把"abc"放在常量区,而charp[]="abc"把"abc"放在变量区。
怎样让编译器识别这个错误?char*p="abc"是C语言的遗留风格,建议使用字符字面值定义字符指针时总是在前面加上const。如下定义:
constchar*p="abc";
这样即使后面有要修改其值的语句编译器也会报错而不是产生运行时错误。
-----------------------转自AngelsThanatos
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: