目录

  • 1 计算机概述
    • 1.1 计算机简介
    • 1.2 计算机系统
    • 1.3 数值在计算机中的表示
  • 2 C语言概述
    • 2.1 C语言发展及特点
    • 2.2 C语言程序的运行步骤和开发环境
    • 2.3 简单的C语言程序
  • 3 C语言基础
    • 3.1 变量、常量及数据类型
    • 3.2 运算符和表达式
    • 3.3 输入、输出
  • 4 选择结构
    • 4.1 计算机编程和算法
    • 4.2 if语句
    • 4.3 if嵌套和if多分支
    • 4.4 switch语句
  • 5 循环结构
    • 5.1 while语句和do...while语句
    • 5.2 for语句
    • 5.3 break语句和continue语句
    • 5.4 goto语句构成的循环
    • 5.5 嵌套循环结构
    • 5.6 程序设计举例
  • 6 函数
    • 6.1 函数的定义与调用
    • 6.2 函数的嵌套调用和递归调用
    • 6.3 作用域和生命周期
    • 6.4 章节小结与测试
  • 7 数组
    • 7.1 一维数组及应用
    • 7.2 二维数组及应用
    • 7.3 字符数组
    • 7.4 数组作为函数参数
    • 7.5 章节小结与测试
  • 8 指针
    • 8.1 指针变量
    • 8.2 指针与数组
    • 8.3 指针的多种形态
  • 9 字符串
    • 9.1 字符串概念及输入输出
    • 9.2 字符串函数
    • 9.3 指针与字符串
    • 9.4 章节小结与测试
  • 10 编译预处理
    • 10.1 宏定义
    • 10.2 文件包含
    • 10.3 条件编译
  • 11 结构体、共用体和用户定义类型
    • 11.1 结构体类型变量
    • 11.2 结构体类型数组与指针
    • 11.3 结构体与函数
    • 11.4 用指针处理链表
    • 11.5 共用体
  • 12 位运算
    • 12.1 位运算的概念和运算规则
  • 13 文件
    • 13.1 C文件概述
    • 13.2 文件的打开与关闭
    • 13.3 文件读写
    • 13.4 位置指针的定位
结构体类型变量



学习目标:

掌握结构体类型的概念

掌握结构体变量的定义及初始化

掌握结构体变量的引用

 

重点:

理解结构体数据类型的特点

掌握结构体变量的定义和使用

 

难点:

结构体变量的访问形式

结构体类型与结构体变量的区别

 

引言:

前面所看到的程序中,变量大多数是独立无内在联系的。但在实际生活中,有些数据是有内在联系,成组出现的,例如一个学生的学号、姓名、性别、年龄等项,是属于同一个学生的,这些数据的数据类型是不相同的,C语言允许用户建立由不同类型数据组成的组合型数据结构,它成为结构体。

一、结构体类型

结构体是一种构造数据类型。

与其他高级语言中的“记录”类似。

定义:由相互关联的不同数据类型的数据组成的有机整体。

用途:为处理复杂的数据结构提供了手段,为函数间传递不同类型的参数提供了便利。

关键字:struct

结构体类型定义:

如:

struct   student

{ int num;

  char name[20];

  char sex;

  int age;

  float score;

  char addr[30];

};

注意:

1)只是声明一种数据类型并没有定义变量。

2)结构体类型定义仅描述结构体的组成,不分配内存空间


二、结构体变量的定义及初始化

1.结构体变量的定义

声明结构体类型时不分配存储单元,使用该类型定义变量时才分配存储单元。

定义变量方法3种:

1)先声明结构体类型,再定义结构体变量


2)声明结构体类型的同时定义结构体变量   

只有在定义了结构体变量后系统才为其分配内存

3)直接定义结构体类型变量

2. 结构体变量的初始化

根据结构体变量的形式,结构体体变量的初始化也有三种形式。

 



3. 结构体类型与结构体变量的区别

1)结构体类型与结构体变量概念不同

2)类型:不分配内存;变量:分配内存

3)类型:不能赋值、存取、运算; 变量:可以赋值、存取、运算

结构体变量中的成员可单独使用,方法如普通变量;

结构体可嵌套

结构体成员名与程序中变量名可相同


三、结构体变量的引用

引用规则:结构体变量不能整体引用,只能引用变量成员

结构体变量名.成员名

成员(分量)运算符

优先级: 1

结合性:从左向右



结构体成员本身又是一个结构体类型,则需要找到最低一级的成员。