• 締切済み

const

次の2つの宣言は同じ意味になりますか? const static char str[] = "a"; static const char str[] = "a";

みんなの回答

  • hpsk
  • ベストアンサー率40% (48/119)
回答No.1

同じですね。このような質問をされるということは、 const char *a; と、 char * const a; の意味が違うことはご存知なのだと思います。 直観的な説明をすると、質問中の宣言で、 constは型修飾子で「型」についていて、 'char'が'const'であることを言っていますが、 staticは記憶クラス指定子で「宣言」についていて、 「const char str[] = "a"」の宣言が'static'であることを言っています。 static,externなどの記憶クラス指定子は、(文法上問題ない場所なら)どこに置いても意味は同じです。 ただし、これらの指定子は宣言の一番先頭に置くことが推奨されているようです。

関連するQ&A