const指针

时间:2021-11-29 06:16:41

  const指针这个问题,复习了好多次,每次看书的时候明白,但是过了一段时间之后没用,总会再次被搞糊涂。

  那么今天就把这个问题先用代码实现,把自己理解的写下来。代码在下面:

     int i = ;
int j = ;
const int* pi = &i;
int* const pj = &i;
const int* const pp= &i;
printf("pi:%d\tpj:%d\tpp:%d \n",*pi,*pj,*pp);
pi = &j;
*pj = ;
printf("pi:%d\tpj:%d\n",*pi,*pj);

  先讲第一个:

const int* pi = &i;

  当const在变量之前,指针pi指向的对象是可变的,但是指针(*pi)的值是不可变的。

  

int* const pj = &i;

  当const在变量之后,指针pi指向的对象是不可变的,但是指针(*pi)的值是可变的。

const int* const pp= &i;

  这个指针指向的对象和值都不能改变。

  其实const指针很简单,但是往往被面试官问的稀里糊涂的,一时混沌了,最好的理解方式就是动手写一个测试代码。