在阅读Code Complete时,我遇到了一个C++数组初始化的例子:
该程序得到了预期的结果:
给出了有趣的结果:
初始化声明是否只设置数组中的第一个元素?
可能是重复内容:
C and C++ : Partial initialization of automatic structure
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
初始化声明是否只设置数组中的第一个元素?