qfedu-c-level/day12/d9.c

59 lines
1.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 结构体,也是构造类型之一,由至少一个基本数据类型或构造类型组成的一种数据类型
// 结构体的成员可以是基本数据类型或构造类型
#include <stdio.h>
#include <string.h>
/*
// 语法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;
}