重複の可能性:
CおよびC ++:自動構造の部分的な初期化
Code Completeを読んでいるときに、C++配列の初期化の例に出くわしました。
float studentGrades[ MAX_STUDENTS ] = { 0.0 };
C ++が配列全体を初期化できることを知らなかったので、テストしました。
#include <iostream>
using namespace std;
int main() {
const int MAX_STUDENTS=4;
float studentGrades[ MAX_STUDENTS ] = { 0.0 };
for (int i=0; i<MAX_STUDENTS; i++) {
cout << i << " " << studentGrades[i] << '\n';
}
return 0;
}
プログラムは期待される結果をもたらしました:
0 0
1 0
2 0
3 0
ただし、初期化値をから0.0
に変更すると、次のようになり9.9
ます。
float studentGrades[ MAX_STUDENTS ] = { 9.9 };
興味深い結果が得られました:
0 9.9
1 0
2 0
3 0
初期化宣言は配列の最初の要素のみを設定しますか?