Sunwayking

导航

[转]char *与char[]的区别(c,c++不可以修改char *初始化值)

原因:
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"(错误)

posted on 2010-11-01 11:11  Sunwayking  阅读(405)  评论(0编辑  收藏  举报