C++ 高手帮我看下这个简单得程序错在哪里啊?

2024-12-17 15:40:20
推荐回答(3个)
回答1:

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;

回答2:

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< cout< cout< return 0;
}

回答3:

不能这样赋值,需要逐个变量赋值.