第3章 51单片机的C51语言基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前一页
3.1 51单片机通信接口基础
3.1.1数据和数据类型 3.1.2常量和变量 3.1.3存储器和寄存器变量 3.1.4算术运算、赋值、逻辑运算 3.1.5位操作 3.1.6自增减、复合和逗号运算 3.1.7运算符的优先级
前一页
首页
3.1.1数据和数据类型
数据是51系列单片机操作的对象,是具有一定格式的数字或者数值。数据按照一定的数据类 型进行的排列、组合和架构称为数据结构,C51支持的数据类型如表3.1(详见教材)所示, 可以分为基本数据类型、构造数据类型和指针类型三大类。 基本数据类型包括位型、字符型、整型、长整型、浮点型和双精度浮点型,其中字符型、 整型和长整型可以分为有符号型和无符号型。 构造数据类型可以分为数组、结构体、共用体和枚举类型,它们是若干个基本数据类型的 集合体。 指针类型是专门用来存放对象地址的数据类型,可以指向系统中任何一个地址单元,具有 很大的灵活性,是C51语言的强大数据类型。空类型常常用于函数返回值,如果某一个函数 不返回任何数值,则可以定义为空类型。
在程序操作中,常常需要将一种类型的数据赋值给另外一种类型的数据,这种操作可以使用 专用函数进行,也可以由编译器自动完成,一般来说,编译器会把长度短的数据类型自动转 换位长度长的数据类型,以确保数据不丢失。
前一页
3.1.2常量和变量
C51语言的数据可以分为常量和变量两种,前者在程序执行过程中其值不能发生变化,后者在 程序执行过程中其值可以改变。 1. 常量 常量是在程序执行过程中不能改变的值。按照数据类型,常量可以分为整型常量、字符型常量 等。 通常来说,可以使用预定义关键字“#define”对常量进行定义,使用一个标识符代替一个常量, 例3.1给出了几个常用的常量定义的实例。 【例3.1】常量定义(实例代码详见教材) 2. 变量 变量是在程序执行过程中可以发生改变的值,在使用前必须先声明,变量有3个相关参数:变 量名、变量值和变量地址。 ●变量名:变量的名称,由用户自己定义,是一个起始字符为字符或者下划线,随后字符必须 是字母、数字或者下划线的字符组合。 ●变量值:变量对应的具体数值。 ●变量地址:变量对应的51单片机的存储单元地址单元,也是变量值对应的存放地址。 变量按照数据类型可以划分为位变量、字符变量、整型变量、浮点型变量等,例3.2是几个常 用的变量定义示例。 【例3.2】变量定义(实例代码详见教材) 除了上面提到的几种数据类型之外,字符型、整型以及长整型变量还可以分为unsigned和 signed两种类型,其中unsigned数据类型的变量值始终是一个正数,它是51单片机可以直接运 算的数据,不需要做额外的转换,所以在需要加快程序代码的执行速度而不需要执行负数运算 的时候,应该尽可能地将signed类型数据变量定义为unsigned变量,如例3.3所示。 【例3.3】变量定义(实例代码详见教材)
3.2.1顺序结构
顺序结构是C51语言中最简单和基本的程序结构,代码从程序空间的低地址位向高地址位执 行,也即一条条地依次执行,例3.18是一个典型顺序结构的代码块示意。 【例3.18】顺序程序的结构
前一页
3.2.2选择结构
在选择结构中,程序首先测试一个条件语句,如果条件为“真”时执行某些语句,如果条件为 “假”时执行另外一些语句。选择语句可以分为单分支结构以及多分支结构,多分支结构又包 括串行多分支结构和并行多分支结构,下左图所示是串行多分支结构的示意,串行多分支结构 以单选择结构的某一个分支作为分支判断,最终程序需要在很多选择之中选择出若干程序代码 来执行,这些可供选择的程序代码块都要从一个公共的出口退出。 下右图所示为并行多分支结构的示意,其使用一个“X”值判断条件,根据“X”的不同数值选 择不同的代码块执行。最后可以从不同的程序出口退出。
前一页
3.1.5位操作
因为51单片机有位寻址空间,所以支持位变量操作。恰当的位操作会大大地提高单片机程序 的运行速度,还能极大地方便用户编程,51单片机的位操作包括位逻辑运算和移位运算两种 类型。 1. 位逻辑运算 位逻辑运算包括位与、位或、位异或、位取反,如表3.8(详见教材)所示。 位逻辑操作的示例程序如例3.13所示,需要注意位逻辑操作和普通逻辑操作的区别。 【例3.13】位逻辑操作(示例代码详见教材) 2. 移位运算 移位运算包括左移位和右移位运算,如表3.9 (详见教材)所示。 例3.14是移位运算的示例程序,移位运算一般用于简单的乘除法运算。 【例3.14】移位运算(示例代码详见教材)
为零)时执行代码块,直到条件不成立。 【例3.25】while语句的基本结构【例3.26】计算1~100的和,存放到sum中(实例代码详见教材) 2. do while语句 do while语句功能和while语句类似,它是执行后判断语句,执行一次代码块之后对条件语句进行 判断,如果条件成立再一次执行代码块,如果条件不成立则退出循环,例3.27是do while语句的基 本结构。 【例3.27】do while语句的基本结构【例3.28】do while语句的应用(实例代码详见教材) 3. for语句 for语言是循环语句中最灵活和最强大语句,其基本结构如例3.29所示。 【例3.29】for语句的基本结构【例3.30】for语句的应用(实例代码详见教材) 4. 循环语句使用总结 循环语句和判断语句一样可以互相或者自我嵌套,也可以和判断语句互相嵌套。以下说明循环语 句的一些特殊用法。 “死”循环一般用于单片机监控程序,单片机需要等待一个条件的改变,进行无限循环。“死” 循环的常用结构如例3.31所示。 【例3.31】“死”循环语句【例3.32】省略表达式1、表达式3的for语句【例3.33】没有代码块的for 语句(实例代码详见教材)
前一页
3.1.4算术运算、赋值、逻辑运算
算术运算、赋值运算、逻辑运算以及关系运算都是C51语言的基本运算操作,是C51语言程序 的重要组成部分。 1. 算术运算符和算术表达式 C51语言一共支持5种算术运算符,如表3.4(详见教材)所示。 在C51语言中把用算术运算符和括号将运算对象连接起来的表达式称为算术表达式,运算对象 包括常量、变量、函数、数组和结构等。在算术表达式中需要遵守一定的运算优先级,其规定 为先乘除(余),后加减,最优先括号,同级别从左到右,和数学计算相同。例3.8给出了几 个算术表达式以及它们的执行步骤。 【例3.8】算术表达式和执行步骤(实例代码详见教材) 2. 赋值运算符和赋值表达式 C51语言的赋值运算符包括普通赋值运算符和复合赋值运算符两种,普通的赋值运算符使用 “=”,而复合赋值运算符是在普通赋值运算符之前加上其他二目运算符所构成的赋值符。使 用赋值运算符连接的变量和表达式构成了赋值表达式,例3.9给出了赋值运算表达式的例子。 【例3.9】赋值运算表达式和【例3.10】强制类型转化(实例代码详见教材) 3. 逻辑运算 C51逻辑运算包括逻辑与操作、逻辑或操作和逻辑非操作,如表3.6(详见教材)所示。 【例3.11】逻辑表达式(实例代码详见教材) 4. 关系运算 C51语言提供了6种关系运算符,说明如表3.7(详见教材)所示。 使用关系运算符连接的表达式或者变量称为关系表达式,关系运算符中前两种优先级别高于后 两种,同等优先级下遵守从左到右的顺序,关系运算式的运算结果是逻辑真“1”或者是逻辑 假“0”,如例3.12所示。 【例3.12】关系运算符(示例代码详见教材)
前一页
3.1.7运算符的优先级
运算符的优先级是指当在一个表达式中出现多个运算符时的运算次序,表3.10(详见教材) 给出了C51语言中所有的运算符的优先级说明。
前一页
3.2 C51语言的结构
3.2.1顺序结构 3.2.2选择结构 3.2.3循环结构 3.2.4其他结构语句
前一页
首页
前一页
3.1.6自增减、复合和逗号运算
自增减运算、符合运算和逗号运算是C语言的特色,C51语言继承了C语言的这种特色,其中复合 运算在第3.1.4节赋值运算中曾经有所介绍。 1. 自增减运算 自增减运算分别是使变量的值增加或者减少1,相当于“变量 = 变量 + 1”或者“变量 = 变量-1” 操作,使用方法如例3.15所示,需要注意的是,运算符号在变量前后的写法的运算结果是不同的。 【例3.15】自增减预算,如果unsigned char x = 0x23H,则有如下关系成立(实例代码详见教材) 2. 复合运算 复合运算在前面已经介绍过,是将普通运算符和赋值符号结合起来的运算,有两个操作数的运算 符都可以写成“变量 运算符 = 变量”的形式,相当于“变量 = 变量 运算符 变量”,如例3.16所 示。 【例3.16】复合运算(实例代码详见教材) 3. 逗号运算 逗号运算符是C51语言的特色运算符,关键字为“,”,用“,”和其他关键字将变量和表达式连 接起来可以构成逗号表达式,其一般形式如“表达式1,表达式2,……,表达式n”。逗号表达式按 照从左到右的方式运算,Байду номын сангаас个表达式的值取决于最后一个表达式,如例3.17所示。 【例3.17】逗号运算(实例代码详见教材)
《单片机应用技术实例教程(C51版)》
--高等院校嵌入式人才培养规划教材
第3章 51单片机的C51语言 基础
本章主要内容
3.1 C51语言的数据、运算符和表达式 3.2 C51语言的结构 3.3 C51语言的函数 3.4 C51语言的数组和指针 3.5 C51语言的自构造类型 3.6 本章总结
前一页
3.2.3循环结构
循环语句用于处理需要重复执行的代码块,在某个条件为“真”的时候,重复执行某些相同的代 码块。循环语句一般由循环体(循环代码)和判定条件组成,C51常用的循环语句有while语句、 do while语句和for语句。 1. while语句 while语句是预先判断结构的循环语句,其基本结构如例3.25所示,当判断条件为“真”成立(不
选择语句构成了51单片机执行动作的判断和转移的基础,是模块化程序的重要组成部分,C51语 言常用的选择语句有if语句和switch语句,其中if语句又有if…else、if和else if三种形式。 1. if 语句 2. switch语句 【例3.19】if…else语句的结构 【例3.20】if语句的结构 【例3.21】else if语句的结构 【例3.22】 判断两个不相等的无符号char型变量A、B的大小,将较大的一个变量的值送到无符号char型变 量C,【例3.23】switch语句的结构 【例3.24】switch语句应用(实例代码详见教材)
前一页
3.1.3存储器和寄存器变量
51单片机的存储器分为片内数据存储器、片外数据存储器、片内程序存储器和片外程序存储器, 另外在片内数据存储器中还存在寄存器单元,故在C51程序中可以使用不同的存储器或者寄存 器来存放数据。 1. C51语言的数据存储类型 C51可以使用相关关键字将数据存放到指定的存储空间中,如表3.2(详见教材)所示,例3.4 是各种数据存储空间对应的变量定义示例。 【例3.4】数据存储空间定义(实例代码详见教材) 如果在定义变量时省略了关键字,C51语言的编译器会则自动地选择默认的存储类型,通常来 说会有SMALL、COMPACT和LARGE三种模式,在这些模式下C51应用代码中变量的存放地 点和传递方式都是固定的。同时,C51编译器也支持混合模式,例如可以在LARGE模式下对一 些需要快速执行的函数使用SMALL模式来加快执行过程,具体如表3.3(详见教材)所示。 2. 寄存器 C51语言支持用户使用关键字sfr和sfr16来定义51单片机的片内寄存器,如例3.5所示,其中 sfr16定义的是寄存器双字节的低位字节地址。 【例3.5】使用sfr和sfr16定义寄存器和【例3.6】使用sbit定义位变量和【例3.7】使用sbit定义 变量空间(实例代码详见教材) 3. 位变量 前面介绍了使用bit和sbit关键字来分别定义位变量,需要注意的是,位变量必须定义在位寻址 单元中,也就是这些变量必须存放到DATA或者IDATA中,否则在编译的时候会出现错误。bit 关键字一般用于定义单个的位变量,而sbit关键字一般用于对于一个变量内部进行定义,后面 这种用法在程序编写中经常用到,其好处是可以方便赋值和调用。
3.1 51单片机通信接口基础
3.1.1数据和数据类型 3.1.2常量和变量 3.1.3存储器和寄存器变量 3.1.4算术运算、赋值、逻辑运算 3.1.5位操作 3.1.6自增减、复合和逗号运算 3.1.7运算符的优先级
前一页
首页
3.1.1数据和数据类型
数据是51系列单片机操作的对象,是具有一定格式的数字或者数值。数据按照一定的数据类 型进行的排列、组合和架构称为数据结构,C51支持的数据类型如表3.1(详见教材)所示, 可以分为基本数据类型、构造数据类型和指针类型三大类。 基本数据类型包括位型、字符型、整型、长整型、浮点型和双精度浮点型,其中字符型、 整型和长整型可以分为有符号型和无符号型。 构造数据类型可以分为数组、结构体、共用体和枚举类型,它们是若干个基本数据类型的 集合体。 指针类型是专门用来存放对象地址的数据类型,可以指向系统中任何一个地址单元,具有 很大的灵活性,是C51语言的强大数据类型。空类型常常用于函数返回值,如果某一个函数 不返回任何数值,则可以定义为空类型。
在程序操作中,常常需要将一种类型的数据赋值给另外一种类型的数据,这种操作可以使用 专用函数进行,也可以由编译器自动完成,一般来说,编译器会把长度短的数据类型自动转 换位长度长的数据类型,以确保数据不丢失。
前一页
3.1.2常量和变量
C51语言的数据可以分为常量和变量两种,前者在程序执行过程中其值不能发生变化,后者在 程序执行过程中其值可以改变。 1. 常量 常量是在程序执行过程中不能改变的值。按照数据类型,常量可以分为整型常量、字符型常量 等。 通常来说,可以使用预定义关键字“#define”对常量进行定义,使用一个标识符代替一个常量, 例3.1给出了几个常用的常量定义的实例。 【例3.1】常量定义(实例代码详见教材) 2. 变量 变量是在程序执行过程中可以发生改变的值,在使用前必须先声明,变量有3个相关参数:变 量名、变量值和变量地址。 ●变量名:变量的名称,由用户自己定义,是一个起始字符为字符或者下划线,随后字符必须 是字母、数字或者下划线的字符组合。 ●变量值:变量对应的具体数值。 ●变量地址:变量对应的51单片机的存储单元地址单元,也是变量值对应的存放地址。 变量按照数据类型可以划分为位变量、字符变量、整型变量、浮点型变量等,例3.2是几个常 用的变量定义示例。 【例3.2】变量定义(实例代码详见教材) 除了上面提到的几种数据类型之外,字符型、整型以及长整型变量还可以分为unsigned和 signed两种类型,其中unsigned数据类型的变量值始终是一个正数,它是51单片机可以直接运 算的数据,不需要做额外的转换,所以在需要加快程序代码的执行速度而不需要执行负数运算 的时候,应该尽可能地将signed类型数据变量定义为unsigned变量,如例3.3所示。 【例3.3】变量定义(实例代码详见教材)
3.2.1顺序结构
顺序结构是C51语言中最简单和基本的程序结构,代码从程序空间的低地址位向高地址位执 行,也即一条条地依次执行,例3.18是一个典型顺序结构的代码块示意。 【例3.18】顺序程序的结构
前一页
3.2.2选择结构
在选择结构中,程序首先测试一个条件语句,如果条件为“真”时执行某些语句,如果条件为 “假”时执行另外一些语句。选择语句可以分为单分支结构以及多分支结构,多分支结构又包 括串行多分支结构和并行多分支结构,下左图所示是串行多分支结构的示意,串行多分支结构 以单选择结构的某一个分支作为分支判断,最终程序需要在很多选择之中选择出若干程序代码 来执行,这些可供选择的程序代码块都要从一个公共的出口退出。 下右图所示为并行多分支结构的示意,其使用一个“X”值判断条件,根据“X”的不同数值选 择不同的代码块执行。最后可以从不同的程序出口退出。
前一页
3.1.5位操作
因为51单片机有位寻址空间,所以支持位变量操作。恰当的位操作会大大地提高单片机程序 的运行速度,还能极大地方便用户编程,51单片机的位操作包括位逻辑运算和移位运算两种 类型。 1. 位逻辑运算 位逻辑运算包括位与、位或、位异或、位取反,如表3.8(详见教材)所示。 位逻辑操作的示例程序如例3.13所示,需要注意位逻辑操作和普通逻辑操作的区别。 【例3.13】位逻辑操作(示例代码详见教材) 2. 移位运算 移位运算包括左移位和右移位运算,如表3.9 (详见教材)所示。 例3.14是移位运算的示例程序,移位运算一般用于简单的乘除法运算。 【例3.14】移位运算(示例代码详见教材)
为零)时执行代码块,直到条件不成立。 【例3.25】while语句的基本结构【例3.26】计算1~100的和,存放到sum中(实例代码详见教材) 2. do while语句 do while语句功能和while语句类似,它是执行后判断语句,执行一次代码块之后对条件语句进行 判断,如果条件成立再一次执行代码块,如果条件不成立则退出循环,例3.27是do while语句的基 本结构。 【例3.27】do while语句的基本结构【例3.28】do while语句的应用(实例代码详见教材) 3. for语句 for语言是循环语句中最灵活和最强大语句,其基本结构如例3.29所示。 【例3.29】for语句的基本结构【例3.30】for语句的应用(实例代码详见教材) 4. 循环语句使用总结 循环语句和判断语句一样可以互相或者自我嵌套,也可以和判断语句互相嵌套。以下说明循环语 句的一些特殊用法。 “死”循环一般用于单片机监控程序,单片机需要等待一个条件的改变,进行无限循环。“死” 循环的常用结构如例3.31所示。 【例3.31】“死”循环语句【例3.32】省略表达式1、表达式3的for语句【例3.33】没有代码块的for 语句(实例代码详见教材)
前一页
3.1.4算术运算、赋值、逻辑运算
算术运算、赋值运算、逻辑运算以及关系运算都是C51语言的基本运算操作,是C51语言程序 的重要组成部分。 1. 算术运算符和算术表达式 C51语言一共支持5种算术运算符,如表3.4(详见教材)所示。 在C51语言中把用算术运算符和括号将运算对象连接起来的表达式称为算术表达式,运算对象 包括常量、变量、函数、数组和结构等。在算术表达式中需要遵守一定的运算优先级,其规定 为先乘除(余),后加减,最优先括号,同级别从左到右,和数学计算相同。例3.8给出了几 个算术表达式以及它们的执行步骤。 【例3.8】算术表达式和执行步骤(实例代码详见教材) 2. 赋值运算符和赋值表达式 C51语言的赋值运算符包括普通赋值运算符和复合赋值运算符两种,普通的赋值运算符使用 “=”,而复合赋值运算符是在普通赋值运算符之前加上其他二目运算符所构成的赋值符。使 用赋值运算符连接的变量和表达式构成了赋值表达式,例3.9给出了赋值运算表达式的例子。 【例3.9】赋值运算表达式和【例3.10】强制类型转化(实例代码详见教材) 3. 逻辑运算 C51逻辑运算包括逻辑与操作、逻辑或操作和逻辑非操作,如表3.6(详见教材)所示。 【例3.11】逻辑表达式(实例代码详见教材) 4. 关系运算 C51语言提供了6种关系运算符,说明如表3.7(详见教材)所示。 使用关系运算符连接的表达式或者变量称为关系表达式,关系运算符中前两种优先级别高于后 两种,同等优先级下遵守从左到右的顺序,关系运算式的运算结果是逻辑真“1”或者是逻辑 假“0”,如例3.12所示。 【例3.12】关系运算符(示例代码详见教材)
前一页
3.1.7运算符的优先级
运算符的优先级是指当在一个表达式中出现多个运算符时的运算次序,表3.10(详见教材) 给出了C51语言中所有的运算符的优先级说明。
前一页
3.2 C51语言的结构
3.2.1顺序结构 3.2.2选择结构 3.2.3循环结构 3.2.4其他结构语句
前一页
首页
前一页
3.1.6自增减、复合和逗号运算
自增减运算、符合运算和逗号运算是C语言的特色,C51语言继承了C语言的这种特色,其中复合 运算在第3.1.4节赋值运算中曾经有所介绍。 1. 自增减运算 自增减运算分别是使变量的值增加或者减少1,相当于“变量 = 变量 + 1”或者“变量 = 变量-1” 操作,使用方法如例3.15所示,需要注意的是,运算符号在变量前后的写法的运算结果是不同的。 【例3.15】自增减预算,如果unsigned char x = 0x23H,则有如下关系成立(实例代码详见教材) 2. 复合运算 复合运算在前面已经介绍过,是将普通运算符和赋值符号结合起来的运算,有两个操作数的运算 符都可以写成“变量 运算符 = 变量”的形式,相当于“变量 = 变量 运算符 变量”,如例3.16所 示。 【例3.16】复合运算(实例代码详见教材) 3. 逗号运算 逗号运算符是C51语言的特色运算符,关键字为“,”,用“,”和其他关键字将变量和表达式连 接起来可以构成逗号表达式,其一般形式如“表达式1,表达式2,……,表达式n”。逗号表达式按 照从左到右的方式运算,Байду номын сангаас个表达式的值取决于最后一个表达式,如例3.17所示。 【例3.17】逗号运算(实例代码详见教材)
《单片机应用技术实例教程(C51版)》
--高等院校嵌入式人才培养规划教材
第3章 51单片机的C51语言 基础
本章主要内容
3.1 C51语言的数据、运算符和表达式 3.2 C51语言的结构 3.3 C51语言的函数 3.4 C51语言的数组和指针 3.5 C51语言的自构造类型 3.6 本章总结
前一页
3.2.3循环结构
循环语句用于处理需要重复执行的代码块,在某个条件为“真”的时候,重复执行某些相同的代 码块。循环语句一般由循环体(循环代码)和判定条件组成,C51常用的循环语句有while语句、 do while语句和for语句。 1. while语句 while语句是预先判断结构的循环语句,其基本结构如例3.25所示,当判断条件为“真”成立(不
选择语句构成了51单片机执行动作的判断和转移的基础,是模块化程序的重要组成部分,C51语 言常用的选择语句有if语句和switch语句,其中if语句又有if…else、if和else if三种形式。 1. if 语句 2. switch语句 【例3.19】if…else语句的结构 【例3.20】if语句的结构 【例3.21】else if语句的结构 【例3.22】 判断两个不相等的无符号char型变量A、B的大小,将较大的一个变量的值送到无符号char型变 量C,【例3.23】switch语句的结构 【例3.24】switch语句应用(实例代码详见教材)
前一页
3.1.3存储器和寄存器变量
51单片机的存储器分为片内数据存储器、片外数据存储器、片内程序存储器和片外程序存储器, 另外在片内数据存储器中还存在寄存器单元,故在C51程序中可以使用不同的存储器或者寄存 器来存放数据。 1. C51语言的数据存储类型 C51可以使用相关关键字将数据存放到指定的存储空间中,如表3.2(详见教材)所示,例3.4 是各种数据存储空间对应的变量定义示例。 【例3.4】数据存储空间定义(实例代码详见教材) 如果在定义变量时省略了关键字,C51语言的编译器会则自动地选择默认的存储类型,通常来 说会有SMALL、COMPACT和LARGE三种模式,在这些模式下C51应用代码中变量的存放地 点和传递方式都是固定的。同时,C51编译器也支持混合模式,例如可以在LARGE模式下对一 些需要快速执行的函数使用SMALL模式来加快执行过程,具体如表3.3(详见教材)所示。 2. 寄存器 C51语言支持用户使用关键字sfr和sfr16来定义51单片机的片内寄存器,如例3.5所示,其中 sfr16定义的是寄存器双字节的低位字节地址。 【例3.5】使用sfr和sfr16定义寄存器和【例3.6】使用sbit定义位变量和【例3.7】使用sbit定义 变量空间(实例代码详见教材) 3. 位变量 前面介绍了使用bit和sbit关键字来分别定义位变量,需要注意的是,位变量必须定义在位寻址 单元中,也就是这些变量必须存放到DATA或者IDATA中,否则在编译的时候会出现错误。bit 关键字一般用于定义单个的位变量,而sbit关键字一般用于对于一个变量内部进行定义,后面 这种用法在程序编写中经常用到,其好处是可以方便赋值和调用。