const指针

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

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

1     int i = 5;
2     int j = 10;
3     const int* pi = &i;   
4     int* const pj = &i;
5     const int* const pp= &i;
6     printf("pi:%d	pj:%d	pp:%d 
",*pi,*pj,*pp);
7     pi = &j;
8     *pj = 10;
9     printf("pi:%d	pj:%d
",*pi,*pj);
View Code

  先讲第一个:

const int* pi = &i;

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

  

int* const pj = &i;

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

const int* const pp= &i;

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

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

原文地址:https://www.cnblogs.com/liou/p/3215174.html