C语言 结构体与共同体

更新时间:2023-08-14 23:28:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言

第十一章

结构体与共同体

C语言

本章要点:

掌握结构和联合类型数据的定 义方法和引用方法; 2. 了解枚举类型数据的定义方法 和引用方法。

1.

C语言

11.1 概述

有时,需将不同类型的数据组合成一个有机的

整体,以便于引用。这些数据是相互联系的。 如一个学生的有关信息:

num 10010 name Li min sex M age 18 addr Dalian

可采用结构体数据结构描述上述信息。

C语言

例如:

是类型,不是变量名

定义一个结构体类型

struct student {int num; char name[20]; char sex; int age; char addr[30]; };

的一般形式为:

struct 结构体名 {成员表列};

对各成员都要进行类型说明; 成员名定名规则与变量名同。

C语言

11.2 定义结构体类型变量的方法

方法一:先定义结构体类型再定义变量名

struct student {int num; 不能只指定一个变 char name[20]; 量为“struct型”而不 定义studet1和 指定结构体名 char sex; sudent2为 int age; struct student char addr[30]; 类型变量 }; struct student student1, student2;

C语言

有时,可用符号常量代表一个结构体类型,如:

#define STUDENT struct student STUDENT {int num; 这样,可直接用STUDENT char name[20]; 定义变量,如: char sex; STUDENT student1, student2; int age; 此时,不必再写关键字struct char addr[30]; };

C语言

方法二:在定义类型的同时定义变量,如:

struct student {int num; char name[20]; char sex; int age; char addr[30]; }student1, student2;

一般形式是: struct 结构体名 { 成员表列 }变量名表列;

C语言

方法三:直接定义结构类型变量。

其一般形式是: struct { 成员表列 }变量名表列;

此时,不出现结构体名

C语言

几点说明:

1. 类型与变量是不同概念,不要混淆; 2. 结构体中的成员,可以单独使用,其作 用与地位相当 于普通变量; 3. 成员也可以是一个结构体变量;例如: Struct student struct date {int num; {int month; char name[20]; int day; int age; int year; struct date birthday; }; }student1,student2; 4. 成员名可以与程序中的变量名相同,二者不代表同一 对象。

C语言

11.3 结构体类型变量的引用

规则:

1. 不能将一个结构体变量作为一个整体进行赋值和 输出;只能对其各个成员分别输出(引用形式为: 结构体变量名.成员名)。 错! 正确! printf(“………..”,student1); printf(“ %d”, student1.num); 输出 10010

2 .若成员本身又属一个结构体类型,只能对最低级的成员进 行赋值或存取以及运算。 如:student1.birthday.year (续)

C语言

(接上片)

3. 对成员变量可以象普通变量一样进行各种运算, 如: sumage=student1.age+student2.age; 4. 可以引用成员的地址,也可以引用结构体变量的 地址,如 输入student1.num的值 scanf(“%d”,& student1.num); printf(“%o”,&student1);

输出student1的首地址

scanf(“%d

C语言

C语言

C语言

C语言

C语言

C语言

C语言

C语言

C语言

C语言

本文来源:https://www.bwwdw.com/article/0n5j.html

Top