C语言中char* 和const char* 的区别
char* 表示一个指针变量,并且这个变量是可以被改变的
const char*表示一个限定不会被改变的指针变量
eg: int * const p;
1.int * (const p):变量p经过Const修饰,为只读变量
2.int ((const p)):(const p)作为一个整体成为一个只读指针指向int型变量
3.(int(( const p)))😦*const p)作为一个整体,只读指针p指向Int型变量
So : int * const p:一个指向整型变量的Const型指针
eg: const int p
1.const int(p):变量p是一个指针
2.(const int)(*p):(const就近结合)变量p指向一个const类型的整形
So : const int *p:一个指向const整型变量的指针
二、模式的区别
char*是常量指针,地址不可以改变,但是指针的值可变。
const char*是指向常量的常量指针,地址与值均不可变。
三、指针指向的内容的区别
char*指针指向的内容是可以改变的,是不固定的。赋值后在数据传递的过程中允许改变。
const char*指针指向的内容是固定的,不可改变的。对传入的参数,不会对指针指向的内容进行修改
四、意义的区别
char* str确保str这个指针不会改变,但是这个指针里面的内容可以改变。
const char* str确保*str的内容不会改变,也就是用str这个指针无法改变str这个指针指向的地址的内容,但是可以改变这个指针。

浙公网安备 33010602011771号