>[info]# 用const定義常變量
在定義變量時,如果加上關鍵字const,則變量的值在程序運行期間不能改變,這種變量稱為常變量(constant variable).
如 const int pi=3.1415926;
常量在定義時必須初始化,常量名不能放在賦值號的左邊.
可以用常量表達式對常量進行初始化.
## **符號常量(#define)與const常量的區別**
1. #define宏是在預處理階段展開。
const常量是編譯運行階段使用。
2. #define宏沒有類型,不做任何類型檢查,僅僅是展開。
const常量有具體的類型,在編譯階段會執行類型檢查。
3. #define宏僅僅是展開,有多少地方使用,就展開多少次,不會分配內存(宏定義不分配內存,**變量定義**分配內存。)
const常量會在內存中分配(可以是堆中也可以是棧中)。
4. const常量可以進行調試的
#define是不能進行調試的,因為在預編譯階段就已經替換掉了
5. const不足的地方,是與生俱來的,const不能重定義
#define可以通過#undef取消某個符號的定義,再重新定義。
- 介紹
- 編程設計語言
- 第一章 對C++的初步認識
- 1.2 最簡單的C++程序
- 1.3 C++對C的補充
- 1.3.1 return
- 1.3.2 輸入輸出流
- 1.3.3 putchar 和 getchar
- 1.3.4 用const定義常變量
- 1.3.5 函數原型聲明
- 1.3.6 內置函數
- 1.3.7 函數重載
- 1.3.8 函數模板
- 1.3.9 有默認值的參數
- 1.3.10 作用域
- 1.3.11 const修飾指針
- 1.3.12 引用
- 1.3.13 生命期
- 1.3.14 變量
- 1.3.15 字符串變量
- 第二章 類與對象
- 2.2 類的聲明和對象的定義
- 2.3 類的成員函數
- 第三章 關于類和對象的進一步討論
- 3.1 構造函數
- 3.1.1 對象的初始化
- 3.1.2 構造函數
- 3.2 析構函數
- 3.3調用析構函數和構造函數的順序
- 3.4 對象數組
- 3.5 對象指針
- 3.6 共享數據的保護
- 3.7 對象的建立與釋放
- 3.8 對象的賦值與復制
- 3.9 靜態成員
- 3.10 友元
- 3.11 類模板
- 第四章 運算符重載
- 數據類型轉換
- 運算符重載
- 重載流插入運算符和流提取運算符
- 第五章 繼承與派生
- 繼承與派生
- 第六章 多態性與虛函數
- 多態性
- 虛函數
- 純虛函數與抽象類