C++中结构体数组的初始化问题
发布网友
发布时间:2022-04-20 04:30
我来回答
共2个回答
热心网友
时间:2023-06-27 23:26
第一个问题,不能这样初始化,需要
inflatable
a={0};集合中至少需要1个元素方可作为初始化列表,专业会将name、volume、price的所有字节全部初始化为0。
第二个问题,如果结构体包含有string
a;那么就不能使用初始化列表初始化了。
也就是说
inflatable
a={0}会编译不成功,因为string类有构造函数,具备有构造函数的成员的结构体不能用={0}的方式进行初始化。
热心网友
时间:2023-06-27 23:26
snack[0].band
=
"chocolate
king";//这行在snack[0]底下显示红色波浪线,提示表达式必须为可修改的左值
——字符数组表示的字符串是不能赋值的,可用strcpy函数:strcpy(snack[0].band,
"chocolate
king");
如果band的类型为string就可以赋值了。