C/C++中指针是灵活多变,可以指指向任意地址,但是地址有可以存储任意对象,因此指针与其它对象的定义结合在一起,功能和作用是不同的,很容易混淆,尤其是const、数组和函数。
下面分别介绍一下const、数组、函数与指针一起时在如何使用,有点像绕口令。
1、const与指针
const用来修饰不变量,const与指针结合在一起,有多种称谓和定义,例如: 常量指针、指针常量(指向常量的指针)、指向常量的常量指针。
中文中,两个或多个次名次在一起的时候,通常最后一个词才是关键词,表示整个词组的意义,而前面都是修饰性的。这样看来看,就比较容易搞清楚各种称谓的意义。
常量指针(const指针),根据上面的分词定主语,表示这是一个指针,是一个常量指针,也就是说,指针是一个常量,给这个指针赋值一个地址之后,不能再改变指针的指向,但是可以修改地址所存的对象(值)。
指针常量(指向常量的指针),表示一个指向常量的指针,也就是说,指针是所指的地址是可以变化的,但是每个可以赋值给这个指针的地址所存的对象是常量。
指向常量的常量指针,这个是非常明确的,指针是常量类型的, 指针所指的地址存储的对象也是常量。
如何定义和使用者三种指针呢,直接来例子吧:
int a = 1; //定义一个变量;
const int b = 2; // 定义一个常量;
const int c = 3;
const int * pa = &b; // 定义一个指向常量的指针;
<