const修飾子の動作

まとめ

  • constは直後にくるモノを修飾する
  • プログラマコンパイラに対して、"const修飾された"モノは、実行途中で値を変更しないことを約束する

constレシピ

  • const char *c; --> cはポインタであり、指し示すものは"const char"である。

 ポインタの指し示すモノの値を変えることはできない。ポインタの指す場所は可。

  • char * const c; --> "const c"はポインタであり、指し示すものはcharである。

 ポインタの指す場所を変えることはできない。ポインタの指し示すモノの値は可。

  • const char * const c; --> "const c"はポインタであり、指し示すものは"const char"である。

 ポインタの指す場所を変えることはできない。ポインタの指し示すモノの値を変えることはできない。

  • const char * c[]; --> cは配列で、配列の中身には"const char *"型の値が入る。

 配列の要素であるポインタの指し示すモノの値を変えることはできない。ポインタの指す場所は可。

  • char * const c[]; --> cは配列で、配列の中身には"char * const"型の値が入る。

 constが修飾しているのは"c[]"の各要素。
 配列の要素であるポインタの指す場所を変えることはできない。ポインタの指し示すモノの値は可。

  • const char * const c[]; --> cは配列で、配列の中身には"const char * const"型の値が入る。

 配列の要素であるポインタの指す場所を変えることはできない。配列の要素であるポインタの指し示すモノの値を変えることはできない。



間違い、変な表現に気付いた方、もしお暇でしたら補足願います。