[转]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) 编辑 收藏 举报