1、const char*
Const char*类型是指向常量的指针,注意此时const所在的位置:在“*”的前面。Const在char的前面或后面都是一样的,但通常将const放置在char的前面,对一个利用const char*类型定义的常量指针来说,不能修改其指向内存中的内容,但可以修改其所指向的内存地址。const char*类型的使用方法如下:
char ch[5] = "lisi";
const char *pStr = ch; (pstr所指的变量的值不能改变)
第二行定义了一个指向常量的指针变量:pStr,然后用已定义的字符数组ch给这个变量赋值。相当于将这个数据的首地址赋给了这个变量,因为对于利用const char*类型定义的指向常量的指针变量,不能修改其指向的内存中的内容,但可以修改其本身的值,即变量所保存的内存地址,因此对于pStr来说,这个指针变量的值是可以修改的,而其指向的对象(即数据中的元素)被看做是常量,不能够被修改
2、char* const
Char* const类型定义的是一个指针常量,他的使用方法有
char ch[5] = "lisi";
char *const PSTR = ch;
利用char* const类型定义了一个指针常量(pstr所指的地址不能变):pStr,然后同样用字符数组给这个指针常量赋值,相当于将字符数组的首地址赋给了指针常量
注意此时const的位置:在“*”的后面,但在所定义的指针名称的前面,这种定义形式表明定义了一个指针常量,要注意的是,对于指针常量,必须在其定义的同时赋值,指针常量表示指针本身是常量,因此对于pStr来说,其值是一个指针常量,是不能够修改的
总结:
Const char*类型的指针(指向常量的指针)其所指向的内容是常量,是不可以修改的,但其指针值是可以修改的。
但对于char* const类型的指针(常量指针)来说,它的地址是一个常量,也就是说,它的指针值是常量,不可以修改,但其指向的内容是可以修改的!