C++ 指针和const:
将指针参数声明为指向常量数据指针的好处:
- 可以避免由于无意间修改数据而导致的编程错误;
- 使用const使得函数能够处理const和非const实参,否则将只能接受const数据。
int age=39;
const int* pt=&age;
第二个声明中的const只能防止修改pt指向的值,而不能防止修改pt的值,也就是说可以赋值给pt一个新的地址。
int sloth=3;
const int* ps=&sloth;
int* const finger = &sloth;
最后一个声明中的const位置和之前的不一样,这种格式使得finger只能指向sloth,但允许finger来修改sloth的值。中间的声明不允许使用ps修改sloth的值,但允许将ps指向新的地址。
简而言之:finger
和*ps
都是const
类型,而*finger
和ps
不是const
类型。
C++中指针和const的使用也可以声明如下:
double trouble = 2.0E30;
const double* const stick = &trouble;
在声明中,stick
和*stick
都是const
;stick只能指向trouble,且不能修改trouble的值。