当前课程知识点:C语言程序设计 > 第11章 复杂数据类型 > 11.3 结构体变量的引用与初始化 > 结构体变量的引用与初始化
同学们好
在这一节中
我们将在和大家探讨
定义了结构体类型
结构体类型变量之后
结构体变量的使用和初始化的规则
请同学们牢记形式规则
多使用多练习
在定义了结构体变量以后
我们可以引用这个变量
但要遵守如下规则
1
不能企图通过输出结构体变量名
来达到输出结构体变量所有成员的值的目的
只能对结构体变量中的各个成员
分别进行输入和输出
例如已经定义了student1变量
如使用如下语句
企图用结构体变量名
输出所有成员的值 这是错误的
2
可以引用结构体变量中成员的值
引用方式为 结构体变量名
.成员名
例如如下语句可对结构体成员赋值
student1.num=10010; /*
假设已定义了student1为
student类型的结构体变量
则student1.num表示
student1变量中的num成员
即student1的num(学号)成员*/
3
.是成员运算符
它在所有的运算符中优先级最高
因此可以把student1
.num作为一个整体来看待
相当于一个变量
4
如果成员本身又属一个结构体类型
则要用若干个成员运算符
一级一级地找到最低的一级的成员
只能对最低级的成员进行赋值
或存取以及运算
如语句student1.num
赋值为10010;
是对结构体变量student1中的成员
num赋值为10010
如语句student1.birthday.month
赋值为6;
是对结构体变量student1中的成员
birthday中的成员month赋值为6.
注意不能用student1.birthday
来访问student1变量中的成员birthday
因为该成员本身就是一个结构体变量
5
对结构体变量的成员可以像
普通变量一样进行各种运算
根据其类型决定可以进行的运算
如以下实例
student2.score=student1.score;
sum=student1.score+student2.score;
student1.age++;
分别是各结构体成员的赋值运算
加法运算
自加运算
6
同类的结构体变量可以互相赋值
如
student1=student2;
假设
student1和student2
已定义为同类型的结构体变量
可直接执行赋值操作
7
可以引用结构体变量成员的地址
也可以引用结构体变量的地址
结构体变量的地址主要用作函数参数
传递结构体变量的地址
但不能用以下语句整体读入结构体变量
如
以下三个实例
第一句输入student1.num的值
与第二句输出结构体变量
student1的起始地址是正确的
而第三句想整体读入结构体变量是错误的
8
对结构体变量初始化
不是对结构体类型初始化
如以下实例
我们可以在定义变量时给其赋初值
进行初始化
在定义结构体变量时可以对其成员初始化
初始化列表是用花括号括起来的一些常量
这些常量依次赋给结构体变量中的各成员
今天的内容就讲到这里
在这一节中
我们将和大家探讨定义了结构体类型
定义结构体类型变量的方法之后
和大家研究
结构体变量的引用和初始化的规则
请同学们牢记形式规则
多使用多练习
为将来链表和树栈图的学习打下良好基础
同学们
我们下次课再见
-计算思维与计算机
--计算思维与计算机
--计算思维与计算机
--计算思维和计算机
-2.1 程序设计语言的发展及其特点和应用
--程序设计语言的特点及发展
- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤
--C语言程序的结构和编制步骤
-3.1 C语言的数据类型
--C语言的数据类型
--C语言的数据类型
-3.2 常量
--常量
--常量
-3.3 什么是变量
--什么是变量
--什么是变量
-3.4 如何进行算术运算
--如何进行算术运算
--如何进行算术运算
-3.5 赋值运算符和逗号运算符
--赋值运算符和逗号运算符
-3.6 数据类型转换
--数据类型转换
--数据类型转换
-4.1 格式化输出printf
--格式化输出
-4.2 格式化输入scanf及字符数据的非格式化输入输出
--格式化输入
-5.1 关系运算符和关系表达式
--关系运算符和关系表达式
-5.2 逻辑运算符和逻辑表达式
--逻辑运算符和逻辑表达式
-5.3 条件运算符和条件表达式
--条件运算符和条件表达式
-5.4 if语句
--if语句
--if语句
-5.5 switch语句
--switch语句
--switch语句
-6.1 while语句
--while语句
--while语句
--do-while语句
-6.2 for语句
--for语句
--for语句
-6.3 循环的嵌套
--循环的嵌套
--循环的嵌套
-6.4 break语句和continue语句
--break和continue语句
-7.1 一维数组的定义和引用
--一维数组的定义和引用
-7.2 一维数组的赋值
--一维数组的赋值
--一维数组的赋值
-7.3 二维数组的定义和引用
--二维数组的定义和引用
-7.4 二维数组的赋值
--二维数组的赋值
--二维数组的赋值
-7.5 字符串的本质
--字符串的本质
--字符串的本质
-7.6 字符串操作的常用函数
--字符串常用函数
-7.7 字符串数组
--字符串数组
--字符串数组
-8.1 函数概述
--函数概述
--函数概述
-8.2 有参函数
--有参函数
--有参函数
-8.3 函数参数的传递方式
--函数参数的传递方式
-8.4 变量的作用域和生存期
--变量的作用域和生存期
-8.5 变量的存储类型
--变量的存储类型
--变量的存储类型
-8.6 函数的嵌套和递归调用
--函数的嵌套和递归调用
-8.7 函数的作用域与封装
--函数的作用域与封装
-9.1 指针变量的概念(上)
--指针变量的概念(上)
-9.2 指针变量的概念(下)
--指针变量的概念(下)
-9.3 指向一维数组的指针变量
--指向一维数组的指针变量
-9.4 指向二维数组的指针变量(上)
--指向二维数组的指针变量(上)
-9.5 指向二维数组的指针变量(下)
--指向二维数组的指针变量(下)
-9.6 动态内存分配
--动态内存分配
--动态内存分配
-10.1 编译预处理
--编译预处理
-11.1 用户自己建立数据类型
--用户自己建立数据类型
-11.2 定义结构体类型变量
--定义结构体类型变量
-11.3 结构体变量的引用与初始化
-11.4 结构体数组
--结构体数组
--结构体数组
-11.5 指向结构体类型数据的指针
--指向结构体类型数据的指针
-12.1 文件的基本概念和文件指针
--文件的基本概念和文件指针
-12,2 文件的打开和关闭
--文件的打开和关闭
--文件的打开和关闭
-12.3 文本文件读写
--文本文件读写
--文本文件读写
-12.4 二进制文件读写
--二进制文件读写
--二进制文件读写