原因:
char *p="hello“;
*(p+2)='w';
这里的p是一个指向常量字符串的指针
他可以相当与:const char *p="hello"
根据定义:指向常量字符串的指针不能更改指针指向的内容,但是可以改变本身的值,既是执行*(p+2)='w'; (错误) p="bcvcbvv"(正确)
char pp[] = "hello";
这个相当与指针常量,就是本身是个常量<因为pp就是数组的一个引用,引用本身就是指针常量>
相当与 char const *pp="hello";
根据定义:指针常量不能改变本声的值,但是可以改变指向的值
既是 *(pp+2)='W'(准确) pp="mnbmbmb"(错误)
本文详细解释了在C语言中使用指针操作字符串时的注意事项,包括指向常量字符串的指针与指针常量的区别,以及它们在修改字符串内容方面的不同行为。
9441

被折叠的 条评论
为什么被折叠?



