一个关于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;
} 展开
void main()
{
char ch='*',bh='%';
char *s="JKJ";
char *p="hua";
cout<<*(p+1)<<endl;
cout<<*p<<endl;
*p=*(p+1); //这句错了 说不上原因
cout<<p<<endl;
} 展开
1个回答
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指向常量区(也就是字符串常量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 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询