プログラミング言語C++ 7.5
- ポインタが指すオブジェクトが定数
int x = 3; int y = 4; const int* pc = &x; // 定数へのポインタ pc = &y; // OK
- ポインタそのものが定数
int x = 3; int y = 4; int *const cp = &x; // 定数ポインタ cp = &y; // エラー: cpは定数
- 定数を指すポインタに、非constな変数のアドレスを代入できる。理由は、実害が無いからだそうだ
// 上のコードより int x = 3; const int* pc = &x;
- 逆に、定数のアドレスを非constのポインタに代入することは出来ない
const int x = 3; int* p = &x; // エラー: const int*によりint*を初期化をしている