const
尽可能使用 const
将指针参数声明为指向常量数据的指针数据有两条理由:
- 这样可以避免由于无意间修改数据而导致的编程错误;
- 使用
const
是的函数能够处理const
而非const
实参,否则将只能接受非const
数据。
指向 const
的指针 v.s. const
指针
#include<iostream>
int main(int argc, char *argv[]) {
int gorp = 16;
int chips = 18;
const int *p_gorp = &gorp;
*p_gorp = 20; // INVALID, 禁止修改 p_gorp 指向的值
p_gorp = &chips; // VALID, p_gorp 可以指向另一个变量
int *const p_chips = &chips;
*p_chips = 20; // VALID, p_chips 可以用来修改值
p_chips = &gorp; // INVALID, 禁止改变 p_chips 指向的变量
return 0;
}