【发布时间】:2017-04-07 00:44:02
【问题描述】:
我的代码中有两种类型的结构变量初始化。
例子
#include<iostream>
#include<string>
using namespace std;
struct Data{
int arr[5];
float x;
};
int main(){
struct Data d = {0};
struct Data d1 = {};
cout<<d.arr[0]<<d.x;
cout<<d1.arr[0]<<d1.x<<endl;
return 0;
}
我正在运行代码广告,得到 0 0 0 0 作为我的输出。请帮帮我,这两种初始化有什么区别。
【问题讨论】:
-
一个是你拥有的初始化列表,另一个只是一个空的初始化列表。
-
你希望每个里面有什么?你不应该这样初始化你的结构。您需要访问结构中的每一件事并对其进行初始化。可能有一个函数,它接受一个结构并有一个 for 循环,将数组中的所有内容初始化为 0,将 x 初始化为 0
-
@Danh 不要混蛋。将问题标记为
c,因为它涉及 c 和 c++ 共有的语法是不正确的,但它不是“垃圾邮件”。
标签: c++ struct initialization aggregate-initialization