希望对结构体赋值有心得的你们能来帮我解决一下这个问题:结构体数组的定义和赋值是不是只能用一条语句来完成?如果不是,为什么这样写是错误的
struct BookInformation book[30];
book[0]={"家春秋","巴金","小说","人民文学出版社","23272989",3};
book[1]={"C语言大学实用教程(第3版)","苏小红 孙志岗 陈惠鹏","","电子工业出版社","9787121165146",3};
这样提示的错误是:
error C2059: syntax error : '{'
如果是这样子:
struct BookInformation book[30]={{"C语言大学实用教程(第3版)","苏小红 孙志岗 陈惠鹏","","电子工业出版社","9787121165146",4},{"家春秋","巴金","小说","人民文学出版社","23272989",3}};
是可以运行成功的。
PS:如果我要定义一个结构体数组,数组的前几项在程序里赋值,后面的项通过用户赋值是否可行?
所以如果分开赋值一定要再写一个构造函数吗?
追答嗯,是的 你要用类变量赋值
追问类变量?我不是很懂……C语言中真的有类变量吗?
那么如果没有构造函数就是必须定义赋值一条语句完成吗?
我看成c++ 了
c的话 就是结构体变量
如果没有结构体变量
你可以对结构体成员 一个一个赋值
那如果我要一次把所有成员都赋值呢?像这样:book[0]={"家春秋","巴金","小说","人民文学出版社","23272989",3};
追答这样不行
可以在strcut 里面 定义构造函数
在赋值
BookInformation p= BookInformation("家春秋","巴金","小说","人民文学出版社","23272989",3);
book[0]= p;
这样就可以了
那么,我还是要写一个构造函数。好的,谢谢你这么耐心!
追答嗯,是的
本回答被提问者和网友采纳