C
c中的cosnt都是一個只讀變量扔嵌。
但是可以通過指針改變它的值。
const int i=10;
int *p=(int *)(&i);
改變p
的值本昏,i的值也會被改變供汛。
C++
c++中的const是常量。
內(nèi)置類型的const
對于內(nèi)置類型涌穆。會直接做替換怔昨。比如
const int i=10;
int *p=(int *)(&i);
改變p仍然會改變i的值,但是其他用到i
的地方在編譯時宿稀,已經(jīng)被替換了趁舀。
相當(dāng)于#define
一樣。
類類型和結(jié)構(gòu)體
和C有一樣的缺點(diǎn)祝沸,都可以通過指針來改變其值矮烹。
編譯器不能正確的進(jìn)行替換越庇。
對于C++可以說是:c的const和#define的合體。