其实对于指针常量、常量指针、常量指针常量这三个专用名词应经基础很久了,不过总是过一段时间就忘了或者把这三个给记混淆了。今天又遇到了这个问题,于是就想好好研究下这三个名词,以便于加深印象。
先看下:
const int *p ;//常量指针
int const *p ;//常量指针
int *const P ;// 指针常量
const int *const p;//常量指针常量
int const * const p;//常量指针常量
三个名词演变出了五中形式,之所以这样是因为 const int *与int const *是一样的,我是这样认为的const 不管const出现在哪里只要它在*好前面就是一样的。我是这样的记忆这三个名词的,把*用指针来记忆,把const用常量来记忆,于是
congst (常量) int * (指针)p --常量指针就出来了,
int const(常量) *(指针)p --常量指针
int * (指针) const(常量) p --指针常量就出来了
const(常量) int *(指针) const(常量) p --常量指针常量
int const(常量) *(指针) const(常量) p --常量指针常量
这样应该好几多了吧
常量指针的用法
常量指针的限定性在于不能通过指针修改指针指向的内容。
#include <iostream>
using namespace std;
int main()
{
int a=10,b=11;
const int * p=&a;
int const *q=&b;
cout<<"*p="<<*p<<"\t"<<"*q="<<*q<<endl;
return 0;
}
未完待续