s1={"easyooeasy",1120,male}这样赋值是不对的,但是可以这样初始化:
student s1={"easyooeasy",1120,male}。
如果要赋值的话应该这样赋值:
s1.name = "easyooeasy";
s1.number = 1120;
另外,你只在student中定义了两个字段,name和number。枚举是student的一种内嵌类型,不是它的一个字段,如果要定义枚举gender型的一个字段的话,student应定义为:
struct student{
enum gender {male,famale} ;
char name[20];
int number;
gender gd;
};
此时在main函数中的初始化应为:
student s1={"easyooeasy",1120,student::male},因为枚举gender为student类的内嵌类型,所以必须加上student::域作用符。
赋值为:
s1.name = "easyooeasy";
s1.number = 1120;
s1.gd = student::male;
enum gender定义的gender是一个类型,不是变量。s1.gender是错误的。还有赋值是有问题的,初始化的时候可以那样,赋值不可以。可以这样写程序:
#include
using namespace std;
enum gender {male,famale};
struct student{
char name[20];
int number;
gender sex;
};
int main()
{
student s1 = {"Baney",89,male};
student s2=s1;
cout<
}
不能这样赋值,需要逐个变量赋值.