C语言简单结构体操作1

#include "stdio.h"
#include "string"
/**
 * todo
 *  这一讲学习 structs -> structure
 *
 * @return
 */

// define a struct Student;
struct Student {
    unsigned int stu_no;    // 学号
    char name[100];         // 姓名
    bool male;              // 性别, male: 男性:1  female: 女性:0
};

int main() {
     // declare a student
     Student stu;
     // use . operator to access stu object
     stu.stu_no = 1;
     // stu.name = "Obama";    // todo 错误的字符串访问方式
     stu.male = 1;


    // 我们之前学过 str 一些操作, 包括 strcmp strcpy strcat 等
    // 这里使用 strcpy
    // char	*strcpy(char *__dst, const char *__src);
    strcpy(stu.name,"Obama");

    printf("姓名:%s,学号:%d, 性别:%s\n", stu.name, stu.stu_no,stu.male == 1 ? "男" : "女");

    // todo 我们也可以使用 {} 方式, 来给 对象赋值, 但是 赋值顺序 必须与 变量申明顺序严格一致
    stu = {2, "Biden", 1};
    printf("姓名:%s,学号:%d, 性别:%s\n", stu.name, stu.stu_no,stu.male == 1 ? "男" : "女");

    // 对象之间的赋值
    Student stu2 = stu;
    strcpy(stu2.name, "DongWang");
    printf("姓名:%s,学号:%d, 性别:%s\n", stu2.name, stu2.stu_no,stu2.male == 1 ? "男" : "女");

    // 这里给stu2的赋值 并不影响 stu 的值
    printf("姓名:%s,学号:%d, 性别:%s\n", stu.name, stu.stu_no,stu.male == 1 ? "男" : "女");

    return 0;
}

这里就是注意一下 structure 的 string 赋值方式 与 {} 赋值方式; 还有就是对象之前的赋值,并不影响 原始structs 的值

全部评论

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
点赞 7 评论
分享
牛客网
牛客企业服务