1、const关键字的作用?
答:
(1)修饰变量:将变量声明为只读特性,并保护变量值以防被修改。还能够节约空间,因为通常情况下,编译器并不给普通const只读变量分配空间,而是将它们保存到符号表中,无需读写内存操作,程序执行效率也会提高。
(2)修饰数组:与变量类似,将数组变为具有只读属性,不能被修改。
(3)修饰指针:两种情况。a:用来限定指向空间的值不能修改。b:限定指针不可更改。
int main() { int i = 5; int j = 6; int k = 7; const int* p1 = &i; //定义1 int* const p2 = &j; //定义2 *p1 = 20; p2 = &k; }
在定义1中,const限定的是p1,其指向空间的值不可改变,若改变其指向空间的值,如p1=20,则程序会报错;但p1的值可以改变,可以重新赋值,p1=&k是没有问题的。
在定义2中,const限定的是指针p2,若改变p2的值,如p2=&k,程序将会报错;但如果改变p2的空间的值,是可以改变的,如p2=80是没有问题的,程序可以运行。
(4)修饰函数参数:防止其在函数内部被修改。函数参数可以是普通变量,也可以是指针变量