質問: C++の学習を進めていて、構造体の初期化の方法について少し疑問に 思った事がありました。 以下の記述方法についてです。 ``` struct sockaddr_in addr={0,} ``` 自分で調べてみた結果、{0}のようにして全てを0で初期化する方法が あることがわかったのですが、{0,}の意味がよくわかりませんでした。 これも{0}と同じ意味なのでしょうか?
回答: 同じです。 また、`{0}`は、「全項目を`0`で初期化する」という意味の`0`ではなく、「先頭要素を`0`で初期化する」という意味の`0`です。以降の、明示指定されていない要素は、自動的に`0`で初期化されます。つまり、例えば`{1}`と書くと先頭のみ`1`で、以降は`0`になります。 カンマを書く事で、「以降は値の記述を省略している」というニュアンスを示したかったのかも知れませんが、`{}`と全部省略する手もありますね。