const とポインタ
定数なんてろくに使ったことないけど、ポインターの場合 const を付ける場所で意味が変わってくるんだな。
int main(int argc, char **argv) { int a = 2; int b = 3; int c = 5; int d = 7; const int * pa = &a; int * const pb = &b; const int * const pc = &c; *pa = 11; // error pa = &d; *pb = 11; pb = &d; // error *pc = 11; // error pc = &d; // error return 0; }
ポインタ自体が書き換え禁止なのか、ポインタの指す先が書き換え禁止なのか、もしくは両方なのか、という区別ができる。