const int a; // エラー:constは初期化を行わなくてはならない
const int b = 10; // 変数bは10を表す定数
b++; // bは定数なので変更できない
const char* p1="abc"; // p1が指す内容を変更できない。(p1自体は変更可能)
char const* p2="abc"; // p2が指す内容を変更できない。(p2自体は変更可能)
p1++ ; p2++; // ポインタ自体は変更できる
*p1='A'; *p2='A'; // エラー:ポインタが指す内容がconst
char* const p3="abc"; // p3は変更できない。(p3が指す内容は変更可能)
p3++; // エラー:p3の変更はできない
*p3='A'; // ポインタが指す内容は変更可能
const char* const p4="abc"; // p4、p4が指す内容ともに変更できない。
p4++; // エラー:p4の変更はできない
*p4='A'; // エラー:ポインタが指す内容がconst
int n = 10;
const int& r = n; // nの参照をrに定義する。rは変更不可、nは変更可能
n++; // nは変更可能。rも11になる
r++; // エラー:constなrは変更不可能
const int& r2 = b; // constの参照をconstにするとコンパイラー依存
bool c = ( &b == &r2 ); // cはfalseが入る場合もある(コンパイラ依存)
int& r3 = b; // エラー:constな変数のconstではない参照を作ることはできない
|