指针常量,常量指针,指针 区别

1:char str[22]="1234567890";

编译器在栈区 分配一个空间大小为22 ,并用给定的值进行初始化,其他部分用0初始化。

指针常量,常量指针,指针 区别

栈区分配的空间,没有初始化,其值不定

指针常量,常量指针,指针 区别

2:char * const pr=str;指针常量,pr是一个常量不可以作为左值;

指针常量,常量指针,指针 区别

指针常量不可以进行赋值操作

指针常量,常量指针,指针 区别

3:常量指针 const char* pr=str;

指针指向的是一个常量,不能用指针做左值

指针常量,常量指针,指针 区别

如果字符常量用指针操作 不加const的话,操作不当容易产生bug。即对只读区进行赋值操作在运行时报错。

指针常量,常量指针,指针 区别