深入理解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 的区别?