C/C++ const

492 ワード

C
cのcosntはすべて読み取り専用変数です.ただし、ポインタで値を変更できます.
const int i=10; 
int *p=(int *)(&i); 
pの値を変更すると、iの値も変更されます.
C++
c++のconstは定数です.
内蔵タイプのconst
組み込みタイプの場合.直接置き換えます.たとえば
const int i=10; 
int *p=(int *)(&i); 

pを変更するとiの値は変更されますが、iに使用される他の場所はコンパイル時に置き換えられています.#defineに相当します.
クラスタイプと構造体
Cと同じ欠点があり、ポインタで値を変えることができます.コンパイラは正しく置き換えることができません.
C++に対しては,cのconstとdefineの合体といえる.