结构体的初始化

一般在做算法题时,往往需要用结构体来存储下一个具体的对象,比如说,一个学生,有不超过8位的姓名name,16位学号id,int类型的成绩score。
则可以使用如下的结构体,并且建立构造函数。

struct student{
    
    
    char name[10],id[20];
    int score;
    student(){
    
    }//注意点1
    student(char _name[10],char _id[20],int _score){
    
    //注意点2
        strcpy(name,_name);
        strcpy(id,_id);
        score = _score;
    }
    
};

如果将name和id设为string类型,在进行数据处理时是非常方便的,但是在输入输出哦时使用cin和cout,却使得在oj中耗时较大。之前我不会使用字符数组进行构造函数的数据赋值,今天尝试了一下strcpy函数,发现可以使用strcpy函数来对结构体里面的数组进行初始化。
注意点一,是为了可以不用提供初始化数据就可以单独定义一个student类型的变量
注意点二,是为了可以在定义student变量时提供初始化数据。

int main()
{
    
    
    student a;
    student b = student("Joshua","11111",100);
    //等价于
    //student b("Joshua","11111",100);
    cout<<b.name;
    return 0;
}
//运行结果
Joshua

猜你喜欢

转载自blog.csdn.net/weixin_44321570/article/details/114037811