// 结构体,也是构造类型之一,由至少一个基本数据类型或构造类型组成的一种数据类型 // 结构体的成员可以是基本数据类型或构造类型 #include #include /* // 语法1: 只声明结构体 struct 结构体类型的名称 { // 声明成员变量,成员变量不要初始化(值) 成员类型1 成员名称1; 成员类型2 成员名称2; ... 成员类型n 成员名称n; }; // 语法2: 声明结构体时,同时声明结构体类型的变量 struct 结构体类型的名称 { // 声明成员变量,成员变量不要初始化(值) 成员类型1 成员名称1; 成员类型2 成员名称2; ... 成员类型n 成员名称n; } 结构体类型的变量1, 结构体类型的变量2, ... 结构体类型的变量n; // 语法3: 一次性声明结构体 struct { // 声明成员变量 } 变量名; */ struct STU { unsigned int sid; // 存放学号 char name[32]; // 存放姓名 char phone[12]; // 存放手机号,12个字节,11个数字,最后一个字节存放'\0' }; #define sstu struct STU // 定义别名 int main() { // 定义 STU 类型的变量,存放张三这个学生,学号为1001,手机号为17791692095 // 结构体变量在初始化时,按成员的顺序和数据类型依次赋值 sstu s1 = {1001, "张三", "17791692095"}; sstu s3 = {1003, "王五", "17791692097"}; // 存其他学生的信息 struct STU s2; s2.sid = 1002; strcpy(s2.name, "李四"); strcpy(s2.phone, "17791692096"); printf("sid: %u name: %s phone: %s\n", s1.sid, s1.name, s1.phone); printf("sid: %u name: %s phone: %s\n", s2.sid, s2.name, s2.phone); printf("sid: %u name: %s phone: %s\n", s3.sid, s3.name, s3.phone); return 0; }