59 lines
1.9 KiB
C
59 lines
1.9 KiB
C
|
// 结构体,也是构造类型之一,由至少一个基本数据类型或构造类型组成的一种数据类型
|
|||
|
// 结构体的成员可以是基本数据类型或构造类型
|
|||
|
#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;
|
|||
|
}
|