指针常量和常量指针

指针常量:int* const p   const用于修饰p,所以p是常量,即指针指向的地址不能变,但是指针指向地址里面的数据可以变。

常量指针:const int *q   const用于修饰(int *q),所以*q是int型常量,即指针指向地址里面的数据是不变的,但是指针的指向是可以变的。

记法:读法是从前往后读。const在前,*在后,就是常量指针;*在前,const在后就是指针常量。作用是看const修饰范围(后面是接的什么)

 

指针常量和常量指针的用法:

int a=10;

int b=20;

 

int* const p=&a;

const int* q=&b;

 

*p=b;//p是常量,所以p不能变,只有*p能变

q=&a;//*q是常量,*q不能变,q能变

 

const int* const r;//r所指向的内存中的数据和r的指向均不能改变

 

C++中的引用的本质就是指针常量,例如:

void fun(int &a)

{

      a=5;

}

C++编译器在内部是这样实现上面的函数的

void fun(int* const a)

{

      *a=5;

}

 

posted @ 2018-01-09 14:50  8号prince  阅读(145)  评论(0编辑  收藏  举报