最近在看C语言的指针部分,突然发现了一个很有意思的现象,就是const在指针中的应用:
首先,const可以声明一个常量类似于#define的宏定义,但是const还可以声明const数组、const指针和
指向const的指针。
const 数组比较简单,就是声明数组以后其值就没法再改变了。
而指向const的指针不能用于改变值,如:
double rates[5]={22.3,34.5,34,23,56.7};
const double *pd=dates;//pd指向数组的首元素,该行代码把pd指向的指针类型声明为const double
//我觉得把const double 放在一起看更好理解。
*pd=29.89;//这样是不行的
但是 pd++;是允许的,此时pd指向rates[1],因为我们可以把const double 看成一个变量类型,pd是指针,
所以指针的指向肯定是可以移动的。
还有一种是const指针,就是一种不能指向别处的指针,这个主要取决于const的位置。
double * const pc=rates;//pc指向数组的开始
这样的话可以用这种指针修改它所指向的值,但是它只能指向初始化时设置的地址。
最后还可以在创建指针的时候使用const两次,这样的话该指针既不能更改它所指向的地址,也不能修改指向地址
上的值。
如:const double * const pc=rates;
虽然也能这样设置,但我现在不明白这种设置有啥用!哈哈以后说不定就明白了,到时候再补充吧!