プログラミング言語において、変数を宣言するときに初期値を与えるための文法のことです。
正確な仕様はプログラミング言語によって異なりますが、基本的には、変数を宣言するときに記述する初期値の部分のことです。これは計算式であったり、関数呼出しの結果を使用したりすることもあるほか、配列や構造体に {}
を使うように、多少複雑な記述になる場合もあります。
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 のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |