char *p="hello";
*p='c';
编译没显错,运行错。。。第二句为什么会错误?
关于C语言的char *p字符串
答案:2 悬赏:40 手机版
解决时间 2021-01-27 17:45
- 提问者网友:凉末
- 2021-01-27 08:13
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-01-27 08:22
指针p指向的是一个字符串常量,即该指针指向的是常量区,常量区为只读属性,不可对其进行写操作,否则程序异常
全部回答
- 1楼网友:深街酒徒
- 2021-01-27 09:31
前者合法。
如为 char p[5];
则在表达式中使用时,p是一个常量指针,不能给它赋值,只能在它定义时进行初始化。
"abc"是一个字符串常量,在表达式中使用时,它也是一个指向字符的常量指针。
但 char p[]="abc"; 是可以的,这时可以自动判断字符数组p的长度为多少
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯