3

C++ 標準を試してみましたが、わかりませんでした。これらは同等ですか?

double x[2] = {0.0, 0.0};

double x[2] = {};

これらはどうですか?

struct A {
    double x[2];
};

A a = {0.0, 0.0};

A a = {};

ありがとうございました!

4

2 に答える 2

4

C++ 標準は次のように述べています (8.5.1):

リスト内のイニシャライザが集約内のメンバーよりも少ない場合、明示的に初期化されていない各メンバーは値で初期化されます。

double の値の初期化は、それを に設定すること0.0です。

あ、はい!C++ では同等です。

[ C99 標準をチェックする時間がありませんでした。]

于 2011-06-22T07:50:47.637 に答える
3

はい、そうです。

宣言されたサイズごとに与えられた十分な量がない場合、コンパイラは初期化をゼロで埋めます。

于 2011-06-22T07:49:53.753 に答える