#define是一個真常量,而const則是有編譯器判斷實現的常量,是一個假常量,在實際中,使用const定義的變量,最終還是一個變量,只是在編譯器內進行了檢查,發現有修改則報錯。
由於編譯器在編譯期間對const變量進行檢查,因此被const修飾過的變量是可以修改的,利用指針獲取到const修飾過的變量地址,強制將指針的const修飾 去掉,就可以修改對應的數據內容。如:
const int nConst = 5;
int *pConst = (int*) &nConst;
*pConst = 6;
int nVar = nConst;