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这个指针指向的地址的内容,但是可以改变这个指针。

posted @ 2021-01-31 13:57  菜鸟本鸟gyh  阅读(748)  评论(0)    收藏  举报