c语言 结构体 pdf,C语言学习之结构体.pdf

我们 都知 道 C 语言 中变量 的类 型决 定了 变 量存 储占 用的 空间 。当我

们要 使用 一个 变量 保 存年 龄时 可以 将其 声 明为 int 类型 ,当我 们要 使用

一个 变量 保存 某一 科 目的 考试 成绩 时可 以将其 声明 为 float 。

那么, 当我 们要 做一 个学 生信 息管 理系 统 时,需 要保 存学 生的 姓名、

学号 、年 龄等 信息 , 该怎 么做 呢?

如当 要保 存三 个学 生 的信 息时 ,

方法 一是 :

char *name1,*name2,*name3; // 三个学生的姓名

int num1,num2,num3; // 三个学生的学号

int age1,age2,age3; // 三个学生的年龄

方法 二是 :

// 创建结构体模板

struct student

{

char *name; // 学生名字

int num; // 学生学号

int age; // 学生年龄

};

// 使用该结构体模板创建三个变量 stu1, stu2, stu3

struct student stu1, stu2, stu3;

显然 ,方 法二 跟更 清 晰, 因为 它把 name、 num、age 都集 成 在一 个

模板 ,要 用的 时候 只 要套 用模 板进 行创 建 即可 。这 就是 结 构 体 。

什 么 是 结 构 体

结 构 体 (struct) 是 由 一 系 列 具 有 相 同 类 型 或 不 同 类 型 的 数 据 项 构

成的 数据 集合 ,这些 数据 项称 为 结 构 体 的 成 员 。如 上面 的 student 结 构

体包 含三 个成 员, 分 别是 name、 num、age 。

结构 体是 C 语 言中 的一种 构 造 类 型 。 C 语 言的 数据 类型 如下 图 :

结 构 体 变 量 的 定 义 方 法 1 方法一

// 创建结构体模板 struct student

struct student

{

char *name; // 学生名字

int num; // 学生学号

int age; // 学生年龄

};

// 使用该结构体模板创建三个变量 stu1, stu2, stu3

struct student stu1, stu2, stu3;

此处 ,student 是 结构 体名 ,该 名字 是由 任 意定 义的 ,但是尽 量 起个 有意

义的 名称。其相 当于 一个 模板,可以 使用 这个 模板 去定 义变 量 stu1 ,stu2 ,

stu3 。定义 的时 候不 要忘 了 struct 。

2 方法二

// 定义三个结构体变量 stu1, stu2, stu3

struct

{

char *name; // 学生名字

int num; // 学生学号

int age; // 学生年龄

}stu1, stu2, stu3;

相对 于方 法一 ,此 处 省略 了结 构体 名。虽 然更 简洁 了,但是 因 为没

有了 名字 ,后 面就 不 能用 该结 构定 义新 的 变量 。

3 方法三

// 给结构体模板 struct student重新命名为 student

typedef struct student

{

char *name; // 学生名字

int num; // 学生学号

int age; // 学生年龄

}student;

// 使用 student 创建三个结构体变量 stu1, stu2, stu3

student stu1, stu2, stu3;

此处 使 用 typedef 为结 构体 模 板 struct

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值