深入理解const
深入理解const
const int Max=100;
intArray[Max];
0)const 修饰的是只读变量,具有不可变性。
1)在.c中编译器会提示出错,而在.cpp 文件中则顺利运行。我们知道定义一个数组必须指定其元素的个数。这也从侧面证实在C 语言中,const 修饰的Max 仍然是变量,只不过是只读属性罢了;而在C++里,扩展了const 的含义。
2)const 修饰的只读变量必须在定义的同时初始化,想想为什么?
在定义的时候就把它的内存空间给限制死了,要是不初始化,那块区域永远就是那个样子了(C语言标准规定的)如果不在声明的时候初始化而在其他地方修改,岂不违背了“只读”的意思。
3)case 语句后面是否可以是const 修饰的只读变量呢?
const int Max=100;
intArray[Max];
0)const 修饰的是只读变量,具有不可变性。
1)在.c中编译器会提示出错,而在.cpp 文件中则顺利运行。我们知道定义一个数组必须指定其元素的个数。这也从侧面证实在C 语言中,const 修饰的Max 仍然是变量,只不过是只读属性罢了;而在C++里,扩展了const 的含义。
2)const 修饰的只读变量必须在定义的同时初始化,想想为什么?
在定义的时候就把它的内存空间给限制死了,要是不初始化,那块区域永远就是那个样子了(C语言标准规定的)如果不在声明的时候初始化而在其他地方修改,岂不违背了“只读”的意思。
3)case 语句后面是否可以是const 修饰的只读变量呢?
case 后面只能是常量, 不能是变量
4)我们在讲解const int i 的时候说过const 放在类型名“int”前后都行;而const int*p 与int * const p 则完全不一样。也就是说,我们看const 修饰谁都时候完全可以将数据类型名视而不见,当它不存在。
总结
- 上一篇: return 关键字
- 下一篇: struct 与class 的区别?