1
#include<iostream>
using namespace std;
const int maxn = 5;
struct NODE {
//NODE():flag(false) {}
char data;
int next;
bool flag;
}node[maxn];
int main()
{
NODE anode;
cout << boolalpha << << endl;//使用了未初始化的局部变量anode,在VS上会报错,在上面报警告
for (int i = 0; i < maxn; i++)
{
cout << boolalpha << node[i].flag << endl;
}
return 0;
}
输出为:
true
false
false
false
false
false
居然不一样。
2.在默认构造函数的初始化列表中设置flag为false
#include<iostream>
using namespace std;
const int maxn = 5;
struct NODE {
NODE():flag(false) {}
char data;
int next;
bool flag;
}node[maxn];
int main()
{
NODE anode;
cout << boolalpha << << endl;//使用了未初始化的局部变量anode,在VS上会报错,在上面报警告
for (int i = 0; i < maxn; i++)
{
cout << boolalpha << node[i].flag << endl;
}
return 0;
}
输出为:
false
false
false
false
false
false
3.在默认构造函数的初始化列表中设置flag为true
#include<iostream>
using namespace std;
const int maxn = 5;
struct NODE {
NODE():flag(true) {}
char data;
int next;
bool flag;
}node[maxn];
int main()
{
NODE anode;
cout << boolalpha << << endl;//使用了未初始化的局部变量anode,在VS上会报错,在上面报警告
for (int i = 0; i < maxn; i++)
{
cout << boolalpha << node[i].flag << endl;
}
return 0;
}
输出为:
true
true
true
true
true
true