プログラミング言語において、変数を宣言するときに初期値を与えるための文法のことです。
正確な仕様はプログラミング言語によって異なりますが、基本的には、変数を宣言するときに記述する初期値の部分のことです。これは計算式であったり、関数呼出しの結果を使用したりすることもあるほか、配列や構造体に {} を使うように、多少複雑な記述になる場合もあります。
C言語(C99)の仕様では、次のように定義されています[1]。
initializer:
assignment-expression
{ initializer-list }
{ initializer-list , }
また、変数を宣言する構文規則には次のようにあります[2]。
init-declarator:
declarator
declarator = initializer
したがって、= の部分は初期化子には含みません。
C++(C++14)の仕様では、次のように定義されています[4]。
initializer:
brace-or-equal-initializer
( expression-list )
brace-or-equal-initializer:
= initializer-clause
braced-init-list
initializer-clause:
assignment-expression
braced-init-list
initializer-list:
initializer-clause ...opt
initializer-list , initializer-clause ...opt
braced-init-list:
{ initializer-list ,opt }
{ }
= initializer-clause とあるので、= は初期化子に含まれていますが、= を使わない構文も存在しています。たとえば、旧来からの int n = 10; というかたち以外に、int n {10}; や int n(10); と書くことができます。上記の構文によると、{10} は { initializer-list ,opt } に、(10) は ( expression-list ) に当たります。
Programming Place Plus のトップページへ
| はてなブックマーク に保存 | Facebook でシェア | X で ポスト/フォロー |
| LINE で送る | noteで書く |
|
| 管理者情報 | プライバシーポリシー |