c/c++ 中的char* ,const char* 和 char* const 总结[转]

时间:2021-07-11 21:04:49

文章转自:c/c++ 中的char* ,const char* 和 char* const 总结

例1:

char* str="abc";//错误写法 (在.c文件中是正确的)

const char* str="abc";//正确

原因:"abc"是常量,保存在常量区,用来指向它的指针需要时常量指针.

例2:

char a[10]="aaa";

char* str=a;//正确

原因:a是数组名,代表数组的首地址,赋值没问题.

例3:

const char* str="abc";

*(str+1)='d';//错误

str="cde";//正确

总结:const char* str;  str指针可以变,*str不可变

例4:

char* const  str="abc";//错误

char a[10]="abc";

char b[10]="cde";

char* const  str=a;

*(str+1)='d';//正确

str=b;//错误

总结:char* const  str;str为char的常量指针,str不可变,*str可变