Search on the blog

2013年7月28日日曜日

Curly Bracket Initialization in C++

curly bracketをつかった配列の初期化をいまいち把握していなかったので、調べてみた。

int xs[10] = {0};
これはxsの要素がすべて0に初期化される。

int xs[10] = {};
これでもxsの要素がすべて0に初期化されるらしい。最近までこの書き方は知らなかった。。

int xs[10] = {123};
これはxsの要素がすべて123になると見せかけて、
  • xs[0] = 123
  • xs[i] = 0,  i = 1, 2, ..., 9.
となる。ということは{}の中で指定されなかった要素は0になるということかと予想してみる。

調べてみる
  • curly bracketの要素数を配列のサイズより大きくすることはできない。 
  • curly bracketの要素数を配列のサイズより小さくすることはできる。その場合、値が指定されなかった残りの要素はデフォルト値で初期化される。
ということらしい。[1]

参考URL
[1] Curly Bracket Initialization in C++ and Java

0 件のコメント:

コメントを投稿