[英]c++ array initialization
float minTime[7]={FLT_MAX};
for(int i=0;i<7;i++)
cout << "Min: " << minTime[i] << endl;
为什么我得到以下输出:
Min: 3.40282e+038
Min: 0
Min: 0
Min: 0
...
所有人的价值都应该与第一个相同吗? 如此处所指: C ++注释
所有人的价值都应该与第一个相同吗?
不! 当对数组进行部分初始化时,将对未初始化的数组元素进行值初始化(在这种情况下为零初始化 )。
C ++ 03第8.5.1 / 7节
如果列表中的初始化程序少于聚合中的成员,则每个未显式初始化的成员都应进行值初始化 (8.5)。
[例:struct S { int a; char* b; int c; }; S ss = { 1, "asdf" };
初始化
ss.a
1,ss.b
用“ASDF”,和ss.c
与表单INT(的表达式的值),即,0。]
不,只有第一个值使用提供的值初始化,其他值按照标准初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.