1. 程式人生 > >const 常量與 define常量的區別

const 常量與 define常量的區別

應該 自己 常量 con 而且 fin 表達 進行 替換


c++中的常量可以使用const定義,也可以使用#define宏定義的方式;二者區別如下:

- **區別**
1. const定義的常量有自己的數據類型,編譯器可以對其進行嚴格的類型檢查;但是define定義的宏常量沒有數據類型,執行時只會對其進行字符替換,不會進行類型檢查;
2. const定義的常量,在程序運行時存在與常量表中,系統會為其進行內存分配;但是define定義的宏常量,在預處理階段只是會將define定義的內容進行直接替換,在程序執行的時候常量表中沒有用define定義的宏常量,系統不會為其進行內存分配。
3. define定義表達式時要註意“邊緣效應”;如#define N 2+1 ;2*N; //這個結果應該是2x2+1=5,不是6;這就是“邊緣效應”;
4. const定義的常量常被稱為常變量或者只讀變量,是因為它有類型,會進行類型檢查;而且const可以在任何地方定義常量,在執行過程中,編譯器對其的處理過程與變量相似,只是內存的分配地方不同;

const 常量與 define常量的區別