C语言const在指针上的应用

最近在看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;

虽然也能这样设置,但我现在不明白这种设置有啥用!哈哈以后说不定就明白了,到时候再补充吧!



猜你喜欢

转载自blog.csdn.net/dream_follower/article/details/80308428