C或C++大神们快来相助啊,有个小小的问题,关于c风格字符串的
时间:2011-12-03
来源:互联网
void main()
{
char *p="fhakh";
int i=2;
cout<<p<<endl;
cout<<*(p+i)<<endl;
cout<<p[i]<<endl;
*(p+i)='z'; //为什么不能这样赋值?
p[i+1]='x'; //为什么不能这样赋值?
cout<<p<<endl;
}//应该如何修改?
{
char *p="fhakh";
int i=2;
cout<<p<<endl;
cout<<*(p+i)<<endl;
cout<<p[i]<<endl;
*(p+i)='z'; //为什么不能这样赋值?
p[i+1]='x'; //为什么不能这样赋值?
cout<<p<<endl;
}//应该如何修改?
作者: xianggnai 发布时间: 2011-12-03
1。
*(p+i)='z'; //为什么不能这样赋值?
p[i+1]='x'; //为什么不能这样赋值?
因为p 是静态存储常量,是不能修改的
2。应该如何修改?
改为
char p[]="fhakh";
即可
*(p+i)='z'; //为什么不能这样赋值?
p[i+1]='x'; //为什么不能这样赋值?
因为p 是静态存储常量,是不能修改的
2。应该如何修改?
改为
char p[]="fhakh";
即可
作者: gameslq 发布时间: 2011-12-03
C/C++ code
//程序崩了... #include <iostream> using namespace std; int main() { char *p="fhakh";//这里的字符组合起来可以当个字符数组,指向数组的指针+1之后知道是跳过了多少个地址不? int i=2; cout<<p<<endl; cout<<*(p+i)<<endl; cout<<p[i]<<endl; *(p+i)='z';//没有能保存的空间(内存) p[i+1]='x'; cout<<p<<endl; return 0; }
作者: duke56 发布时间: 2011-12-03
修改字符串字面常量在c/++中都是未定义行为。
现在绝大部分的实现都把字符串字面常量保存一个不可写的页面里,所以不能修改。
现在绝大部分的实现都把字符串字面常量保存一个不可写的页面里,所以不能修改。
作者: Demon__Hunter 发布时间: 2011-12-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28