ブックマーク / ja.stackoverflow.com (1)

  • const に値が代入できるのはなぜですか?

    C言語におけるconstキーワードの働きについて、複数の話題が混在しているようですから、順番に解説してみます。 const修飾には「定数値」と「読み取り専用」という2つの側面があります。両者はよく似ていますが、明確に異なる意味をもっています。前者は"値/データそれ自身"に対する修飾であり、後者が"式の評価結果"に対する修飾となることに注意してください。 初期値をともなう変数定義でconst修飾を用いた場合、「定数値」の定義となります。例:const int x = 5; とすると、名前 x は定数値 5 となります。 ポインタが指す先の型(詳細後述)でconst修飾を用いた場合、「読み取り専用」宣言になります。例:int y = 10; const int *p = &y; とすると、式 *p の評価結果は const int 型つまり「読み取り専用」となります。 「定数値」では、実行時に

    const に値が代入できるのはなぜですか?
    hat_0024_ena
    hat_0024_ena 2016/06/25
    * の左側 const は"ポインタ先のデータ"が、* の右側 const は"ポインタ変数"が不変になる
  • 1