总结:
const限定符用于修饰变量,使其修饰的变量不能被修改。程序使用const主要是为了增加程序的健壮性和易维护性,使程序的潜在问题尽可能地暴露在编译阶段。
理解const的用法,很重要的一点是要清楚const修饰的是哪个变量,一个原则是const离谁近就修饰谁;例int const *p const修饰的是*p,则*p不能被重新赋值;
int *const p;const修饰的是指针p,则p不能被重新赋值;
书中内容理解
“任何变量的声明都能用const限定符修饰,该限定符指定变量的值不能被修改。对数组而言,const限定符指定数组所有元素的值都不能被修改:
const double e = 2.71828182845905;
const char msg[] = "warining: ";
const限定符也可配合数组参数使用,它表明函数不能修改数组元素的值。
int strlen(const char[]);”
上述是书中第一章关于const的描述。
const和define的区别
1. 第一个疑惑就是const修饰的变量既然不能修改,也就说它起到了常量的作用,那为什么不用#define呢?
区别1:const修饰的变量虽然值不能被修改,但是其仍然具有变量的属性,例如会有类型。#define只是用在预编译中,不能进行表达式展开。举例如下:
#define VALUE 2+3
i