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 的值