C--常量指针和指针常量

const关键字与指针

const修饰指针有以下四种形式:
① const int *p1;
② int const *p2;
③ int * const p3;
④ const int * const p4;


常量指针

含义

①和②定义的变量优先和*结合再和const结合,本质是指针,常量修饰它,所以属于常量指针。

初始化

指针要初始化后才能使用,初始化方式有两种:

  • 定义时初始化
int a = 10;
const int *p1 = &a;
int const *p2 = &a;
  • 定义后初始化
int a = 10;
const int *p1;
int const *p2;
p1 = &a;
p2 = &a;

用法

指针p1和p2本身可以更改,但是指针指向的内容(*p)不能更改,因为(*p)被const修饰。


指针常量

含义

③和④定义的变量优先和const结合再和*结合,本质是常量,指针修饰它,所以属于指针常量。

初始化

指针要初始化后才能使用,指针常量只能在定义时初始化指针:

int a = 10;
int * const p3 = &a;
const int * const p4 = &a;

用法

p3和p4相同的地方是在初始化之后就都不能更改了;不同的地方是,p3指针指向的内容(*p3)可以修改,p4指针指向的内容
(*p4)不可以修改,这个地方a的值是可以随意修改的,不受指针的影响。

猜你喜欢

转载自blog.csdn.net/Meteor_s/article/details/89227598