一个简单的C++程序,求解疑惑.

#include<iostream>usingnamespacestd;intmain(){char*s="AAA";cout<<s<<endl;s[0]='B';cou... #include <iostream>

using namespace std;

int main()
{
char *s="AAA";
cout<<s<<endl;
s[0]='B';
cout<<s<<endl;
return 0;
}
为什么后边那个输出出现问题
展开
 我来答
sun_siliang
2011-07-14 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:5533万
展开全部
char *s="AAA"; //"AAA"的类型是const char *,是指针常值,"AAA"这个对象不能修改。
cout<<s<<endl;
s[0]='B'; //试图修改"AAA"这个数指针常值,程序执行时会报错。
匿名用户
2011-07-14
展开全部
本机上运行没问题啊。
追问
不能运行啊,可以编译.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
furious_tauren
2011-07-14 · TA获得超过4057个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:920万
展开全部
把char *s="AAA";换成 char s[]= "AAA";
因为char *s="AAA"; 往往会把 “AAA”放于rom,是不可写的。
就是说 char *s = "AAA";等价于const char *s= "AAA";

回去好好看看c语言。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
2011-07-14 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:3420万
展开全部
char *s="AAA"; "AAA"的类型是const char *,是指针常值,"AAA"这个对象不能修改。
char s[]= "AAA"; 是字符串数组,可以这样s[0]='B';赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LehrLukas
2011-07-14 · TA获得超过618个赞
知道小有建树答主
回答量:269
采纳率:0%
帮助的人:197万
展开全部
“AAA”是常量
C99标准规定
常量不能被赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式