初期化子 | Programming Place Plus 用語集

トップページ用語集

名称

解説

プログラミング言語において、変数宣言するときに初期値を与えるための文法のことです。

正確な仕様はプログラミング言語によって異なりますが、基本的には、変数を宣言するときに記述する初期値の部分のことです。これは計算式であったり、関数呼出しの結果を使用したりすることもあるほか、配列構造体{} を使うように、多少複雑な記述になる場合もあります。

C言語の場合

C言語(C99)の仕様では、次のように定義されています1

initializer:
    assignment-expression
    { initializer-list }
    { initializer-list , }

また、変数を宣言する構文規則には次のようにあります2

init-declarator:
    declarator
    declarator = initializer

したがって、= の部分は初期化子には含みません。

「declarator (宣言子)」は、識別子(変数名)および、配列の要素数の指定などを含んだものです3

C++ の場合

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で書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る