一个关于C语言的指针赋值错误!

#include<iostream.h>voidmain(){charch='*',bh='%';char*s="JKJ";char*p="hua";cout<<*(p+... #include<iostream.h>
void main()
{
char ch='*',bh='%';
char *s="JKJ";
char *p="hua";

cout<<*(p+1)<<endl;
cout<<*p<<endl;
*p=*(p+1); //这句错了 说不上原因
cout<<p<<endl;
}
展开
 我来答
匿名用户
2012-01-28
展开全部
char *p="hua";
这样赋值,p指向常量区(也就是字符串常量hua的首地址),
对于常量指针不能进行赋值处理,所以*p=*(p+1); //这句错了

改成:char p[]="hua";就OK了

#include<iostream.h>
void main()
{
char ch='*',bh='%';
char *s="JKJ";
char p[]="hua";

cout<<*(p+1)<<endl;
cout<<*p<<endl;
*p=*(p+1);
cout<<p<<endl;
}
更多追问追答
追问
p=p+1 就对了
追答
p=p+1是对于指针变量赋值,不是对于指针变量指向地址的内容赋值,区分开啊
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式