C语言结构体与共用体讲解
num
name
birthday month day year
§五、结构体变量的初始化
形式1: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }; struct 结构体名 结构体变量={初始数据}; 形式2: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }结构体变量={初始数据};
形式3: struct { 类型标识符 成员名; 类型标识符 成员名; ……………. }结构体变量={初始数据};
例 #include <stdio.h> void main( ) { struct student { int num; char name[16]; char sex; struct {int year;int month;int day;}birth; float score; }stu1={12,“Wang Lin”,„M‟,{1988,5,30},97}; printf(“%d,%s,%c,%d-%d-%d,%5.2f\n”, stu1.num,,stu1.sex, stu1.birth.year,stu1.birth.month,stu1.birth.day, stu1.score); }
第11章 结构体与共用体
一、结构体的概念及使用 二、结构体变量、数组和指针 三、链表的概念及基本操作 四、11.8 共用体 11.9 枚举类型 11.10 用typedef定义类型
本章要点 §结构体的概念
自己 阅读
§结构体的定义和引用
§结构体数组
C语言程序设计
第一章 C语言概述
短整型short
整 型 数值类型 基本类型 字符类型char 浮点型 整型int 长整型long 单精度型float 双精度型double
数组
C 数 据 类 型 结构体struct 构造类型 共用体union
枚举类型ቤተ መጻሕፍቲ ባይዱnum
指针类型 空类型void
<
定义类型typedef
在基本 类型基 础上自 己定义 的
第11章 结构体与共用体
§一、概述(结构体类型的声明)
结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体 -------自定义数据类型 结构体类型定义
stu1.num=10;
stu1.score=85.5; stu1.score+=stu2.score; stu1.age++;
例 struct student { int num; char name[20]; struct date { int month; int day; int year; }birthday; }stu1,stu2;
例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };
结构体类型定义描述结构 的组织形式,不分配内存
§二、定义结构体类型变量的方法
1、先声明结构体类型,再定义结构体变量
num
name
birthday month day year
§ 四、 结构体变量的引用 引用规则、引用方式、赋值或存储运算、算术运算、引用成员地址 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; stu1.birthday.month=12;
三、说明
结构体类型与结构体变量概念不同 类型:不分配内存;变量:分配内存 成员可单独使用,相当于使用一般变量 结构体可嵌套。成员也可以是一个结构体变量 结构体成员名与程序中的变量名可相同,不会混淆 例 struct date { int month; int day; int year; }; struct student { int num; char name[20]; struct date birthday; }stu;
一般形式:
struct 结构体名 num { 类型标识符 成员名; name 类型标识符 成员名; ……………. sex 例 }; age struct student struct 结构体名 变量名表列; stu1 2字节
…
20字节 1字节 2字节 4字节
{ int num; char name[20]; char sex; 定义结构体变 int age; 量之后为其分 float score; 配内存单元 char addr[30]; }; struct student stu1,stu2;
§六、结构体数组
结构体数组的定义
三种形式: 形式一: 形式三: 形式二: struct student struct student { int num; { int num; char name[20]; char name[20]; char sex; char sex; int age; int age; }; }stu[30]; struct student stu[30];
struct [结构体名] { 类型标识符 成员名; 类型标识符 成员名; ……………. };
合法标识符 可省:无名结构体 成员类型可以是 基本型或构造型
struct是关键字, 不能省略
分号不能省略
例如:要想把学生基本情况作为一个整体加以处理, 包括学号、姓名、性别、年龄、成绩、住址等,定义结构体类型
num
25B
name sex age num
name sex age
score
…..
addr
30字节
2、声明结构体类型的同时定义结构体变量
一般形式: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. }变量名表列;
例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2;