// 当结构体的成员中有构造函数(比如string), 则数组不可用{}初始化为0
// VC2008通过
#include "stdafx.h"
#include <string>
struct A
{
int i;
std::string s;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a1 = {}; // a1.i 被初始化为0
A a2[2] = {}; // a2[0].i 和 a2[1].i 都没有被初始化为0
A a3[2] = {{}, }; // a3[0].i 被初始化为0, a3[1].i没有被初始化为0
A a4[2] = {{}, {}}; // a4[0].i 和 a4[1].i都被初始化为0
return 0;
}
// VC2008通过
#include "stdafx.h"
#include <string>
struct A
{
int i;
std::string s;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a1 = {}; // a1.i 被初始化为0
A a2[2] = {}; // a2[0].i 和 a2[1].i 都没有被初始化为0
A a3[2] = {{}, }; // a3[0].i 被初始化为0, a3[1].i没有被初始化为0
A a4[2] = {{}, {}}; // a4[0].i 和 a4[1].i都被初始化为0
return 0;
}