C语言程序设计第2章-数据类型、运算符和表达式.ppt

上传人:可**** 文档编号:76388854 上传时间:2023-03-10 格式:PPT 页数:45 大小:1.43MB
返回 下载 相关 举报
C语言程序设计第2章-数据类型、运算符和表达式.ppt_第1页
第1页 / 共45页
C语言程序设计第2章-数据类型、运算符和表达式.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《C语言程序设计第2章-数据类型、运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第2章-数据类型、运算符和表达式.ppt(45页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C语言程序设计主编:连卫民 何 樱第2章 数据类型、运算符和表达式本章主要内容:本章主要内容:本章主要内容:本章主要内容:2.1 2.1 数据类型数据类型数据类型数据类型2.2 2.2 常量和变量常量和变量常量和变量常量和变量2.3 2.3 整型数据整型数据整型数据整型数据(重点(重点(重点(重点)2.4 2.4 实型数据实型数据实型数据实型数据(重点(重点(重点(重点)2.5 2.5 字符型数据字符型数据字符型数据字符型数据(重点(重点(重点(重点)2.6 2.6 数据的基本运算(重点)数据的基本运算(重点)数据的基本运算(重点)数据的基本运算(重点)2.7 2.7 混合运算混合运算混合运算

2、混合运算本章教学要求:本章教学要求:本章教学要求:本章教学要求:熟悉熟悉熟悉熟悉C C语言的语句和数据类型语言的语句和数据类型语言的语句和数据类型语言的语句和数据类型 掌握掌握掌握掌握C C语言的数据表示方法和算术、赋值、关系、逻辑等运算语言的数据表示方法和算术、赋值、关系、逻辑等运算语言的数据表示方法和算术、赋值、关系、逻辑等运算语言的数据表示方法和算术、赋值、关系、逻辑等运算及其表达式及其表达式及其表达式及其表达式 2.1 数据类型概述数据类型概述数据类型数据类型的概念的概念数据数据数据数据是程序的必要组成部分,也是程序处理的对是程序的必要组成部分,也是程序处理的对是程序的必要组成部分,也

3、是程序处理的对是程序的必要组成部分,也是程序处理的对象,在高级语言中广泛地使用象,在高级语言中广泛地使用象,在高级语言中广泛地使用象,在高级语言中广泛地使用“数据类型数据类型数据类型数据类型”来描述来描述来描述来描述数据。数据。数据。数据。数据类型数据类型数据类型数据类型是对数据的是对数据的是对数据的是对数据的“抽象抽象抽象抽象”。数据类型数据类型数据类型数据类型规定了该类数据的取值范围和该类数据规定了该类数据的取值范围和该类数据规定了该类数据的取值范围和该类数据规定了该类数据的取值范围和该类数据所能参与的运算,是这类数据的所能参与的运算,是这类数据的所能参与的运算,是这类数据的所能参与的运算

4、,是这类数据的值与运算值与运算值与运算值与运算的集合。的集合。的集合。的集合。第2章 数据类型、运算符和表达式2.1 数据类型概述数据类型概述C C语言中的数据类型语言中的数据类型语言中的数据类型语言中的数据类型1.1.基本类型基本类型基本类型基本类型:由系统提供:由系统提供:由系统提供:由系统提供 整型、实型、字符型整型、实型、字符型整型、实型、字符型整型、实型、字符型2.2.构造类型构造类型构造类型构造类型:由用户构造:由用户构造:由用户构造:由用户构造 枚举型、数组、结构体、共用体枚举型、数组、结构体、共用体枚举型、数组、结构体、共用体枚举型、数组、结构体、共用体3.3.指针类型指针类型

5、指针类型指针类型:变量的内存地址:变量的内存地址:变量的内存地址:变量的内存地址 4.4.空类型空类型空类型空类型说明:说明:说明:说明:数据类型要熟记:类型名、存储长度、数据范围数据类型要熟记:类型名、存储长度、数据范围数据类型要熟记:类型名、存储长度、数据范围数据类型要熟记:类型名、存储长度、数据范围第2章 数据类型、运算符和表达式2.2 常量和变量常量和变量数据的表示数据的表示数据的表示数据的表示是指数据在计算机中的描述形式。它是指数据在计算机中的描述形式。它是指数据在计算机中的描述形式。它是指数据在计算机中的描述形式。它有常量、变量和地址(即指针)三种形式。有常量、变量和地址(即指针)

6、三种形式。有常量、变量和地址(即指针)三种形式。有常量、变量和地址(即指针)三种形式。2.2.1 常量常量常量常量常量常量是指在程序的执行过程中,值不能发生变化是指在程序的执行过程中,值不能发生变化是指在程序的执行过程中,值不能发生变化是指在程序的执行过程中,值不能发生变化的量和具有固定值的量。的量和具有固定值的量。的量和具有固定值的量。的量和具有固定值的量。类型类型类型类型:整型常量、实型常量、字符型常量、字符:整型常量、实型常量、字符型常量、字符:整型常量、实型常量、字符型常量、字符:整型常量、实型常量、字符型常量、字符串常量和符号常量。串常量和符号常量。串常量和符号常量。串常量和符号常量

7、。第2章 数据类型、运算符和表达式2.2 常量和变量常量和变量2.2.1 常量常量例如,例如,6、2.8、a、abcd分别是整型、实型、字符型和字分别是整型、实型、字符型和字符串常量,符号常量则是在程序(或程序的一部分)中指定符串常量,符号常量则是在程序(或程序的一部分)中指定的用标识符代表的常量的用标识符代表的常量。符号常量用符号常量用#define命令行定义,其命令格式为:命令行定义,其命令格式为:#define 标识符标识符 常量值常量值 例如例如:#define PI 3.14 如果如果作了以上定义,在程序中凡用到作了以上定义,在程序中凡用到值的地方,均可值的地方,均可使用使用 符号符

8、号常量常量PI。第2章 数据类型、运算符和表达式2.2 常量和变量常量和变量2.2.1 常量常量【例【例2-1】求圆面积。求圆面积。第2章 数据类型、运算符和表达式2.2 数据的表示数据的表示2.2.2 变量变量1.1.变量的概念变量的概念变量的概念变量的概念 数据被存储在一定的内存单元中,数据连同存储它的内存单数据被存储在一定的内存单元中,数据连同存储它的内存单数据被存储在一定的内存单元中,数据连同存储它的内存单数据被存储在一定的内存单元中,数据连同存储它的内存单元被抽象为元被抽象为元被抽象为元被抽象为变量变量变量变量。说明说明说明说明:每个变量都有一个名字,这个名字称为变量名,它代表了某段

9、存储每个变量都有一个名字,这个名字称为变量名,它代表了某段存储每个变量都有一个名字,这个名字称为变量名,它代表了某段存储每个变量都有一个名字,这个名字称为变量名,它代表了某段存储单元及其所存储的数据。单元及其所存储的数据。单元及其所存储的数据。单元及其所存储的数据。例如例如例如例如:当在程序中出现下面的语句:当在程序中出现下面的语句:当在程序中出现下面的语句:当在程序中出现下面的语句:int a=5;int a=5;它意味着,在程序中定义了一个整型变量,变量名为它意味着,在程序中定义了一个整型变量,变量名为它意味着,在程序中定义了一个整型变量,变量名为它意味着,在程序中定义了一个整型变量,变量

10、名为a a,其值为,其值为,其值为,其值为5 5,它在内存中占据连续的它在内存中占据连续的它在内存中占据连续的它在内存中占据连续的2 2个内存单元用于存放数据。个内存单元用于存放数据。个内存单元用于存放数据。个内存单元用于存放数据。第2章 数据类型、运算符和表达式2.2 数据的表示数据的表示2.2.2 变量变量2 2.标识符标识符标识符标识符 C C语言中对程序中的实体,如:变量、常量、函数、数组、语言中对程序中的实体,如:变量、常量、函数、数组、语言中对程序中的实体,如:变量、常量、函数、数组、语言中对程序中的实体,如:变量、常量、函数、数组、结构体以及文件的名字统称为结构体以及文件的名字统

11、称为结构体以及文件的名字统称为结构体以及文件的名字统称为标识符标识符标识符标识符。标识符的标识符的标识符的标识符的命名规则命名规则命名规则命名规则 :由字母、数字和下划线组成,且以字母或下划线开头。由字母、数字和下划线组成,且以字母或下划线开头。由字母、数字和下划线组成,且以字母或下划线开头。由字母、数字和下划线组成,且以字母或下划线开头。标识符的长度标识符的长度标识符的长度标识符的长度无统一规定,最多可取到无统一规定,最多可取到无统一规定,最多可取到无统一规定,最多可取到3232个字符。考虑个字符。考虑个字符。考虑个字符。考虑到程序的可移植性,建议标识符的长度最长不要超过到程序的可移植性,建

12、议标识符的长度最长不要超过到程序的可移植性,建议标识符的长度最长不要超过到程序的可移植性,建议标识符的长度最长不要超过8 8个个个个字符。字符。字符。字符。标识符不能与标识符不能与标识符不能与标识符不能与C C语言提供的语言提供的语言提供的语言提供的关键字关键字关键字关键字同名同名同名同名。尽量尽量尽量尽量做到做到做到做到“见名知义见名知义见名知义见名知义”,以增加程序的可读性。,以增加程序的可读性。,以增加程序的可读性。,以增加程序的可读性。第2章 数据类型、运算符和表达式2.2 数据的表示数据的表示2.2.2 变量变量3 3.变量的定义与初始化变量的定义与初始化变量的定义与初始化变量的定义

13、与初始化 变量定义变量定义变量定义变量定义:在:在:在:在C C语言中,要求对所有用到的变量必须语言中,要求对所有用到的变量必须语言中,要求对所有用到的变量必须语言中,要求对所有用到的变量必须“先定义,先定义,先定义,先定义,后使用后使用后使用后使用”,也就是在使用这个变量之前,必须先说明其数据类,也就是在使用这个变量之前,必须先说明其数据类,也就是在使用这个变量之前,必须先说明其数据类,也就是在使用这个变量之前,必须先说明其数据类型。型。型。型。变量初始化变量初始化变量初始化变量初始化:是指在定义变量时给变量赋值。:是指在定义变量时给变量赋值。:是指在定义变量时给变量赋值。:是指在定义变量时

14、给变量赋值。例如例如例如例如 :float a;float a;char ch;char ch;int x=5,y=6;/*int x=5,y=6;/*在内存中申请两个整数空间在内存中申请两个整数空间在内存中申请两个整数空间在内存中申请两个整数空间x x、y y,并存入初值,并存入初值,并存入初值,并存入初值5 5、6*/6*/float a=2.5;/*float a=2.5;/*在内存中申请一个实数空间在内存中申请一个实数空间在内存中申请一个实数空间在内存中申请一个实数空间a,a,并存入初值并存入初值并存入初值并存入初值2.5*/2.5*/char ch=m;/*char ch=m;/*在

15、内存中申请一个字符空间在内存中申请一个字符空间在内存中申请一个字符空间在内存中申请一个字符空间ch,ch,并存入初值并存入初值并存入初值并存入初值m*/m*/第2章 数据类型、运算符和表达式2.3 整型数据整型数据2.3.1 整型常量整型常量 整型常量就是整型常量就是整型常量就是整型常量就是整数整数整数整数。表示形式:。表示形式:。表示形式:。表示形式:(1 1)十进制表示。)十进制表示。)十进制表示。)十进制表示。例如例如例如例如:215215、1515、-10-10等。等。等。等。(2 2)八进制表示)八进制表示)八进制表示)八进制表示。程序中凡以数字。程序中凡以数字。程序中凡以数字。程序

16、中凡以数字0 0开头开头开头开头的数被认为是八进制的数被认为是八进制的数被认为是八进制的数被认为是八进制数。数。数。数。例如例如例如例如:010010、025025,转换为十进制数分别是,转换为十进制数分别是,转换为十进制数分别是,转换为十进制数分别是8 8和和和和2121。(3 3)十六进制表示)十六进制表示)十六进制表示)十六进制表示。程序中凡以。程序中凡以。程序中凡以。程序中凡以0 x0 x(数字(数字(数字(数字0 0和小写字母和小写字母和小写字母和小写字母x x)开头)开头)开头)开头的数是十六进制数。的数是十六进制数。的数是十六进制数。的数是十六进制数。例如例如例如例如:0 x32

17、:0 x32、0 x840 x84,转换为十进制数分别是,转换为十进制数分别是,转换为十进制数分别是,转换为十进制数分别是5050和和和和132132。第2章 数据类型、运算符和表达式2.3 整型数据整型数据2.3.2 整型变量整型变量1.整型变量的分类整型变量的分类整型变量可分为四类:整型变量可分为四类:(1)基本整型,用)基本整型,用int表示。表示。(2)短整型,用)短整型,用short int 或或short表示。表示。(3)长整型,用)长整型,用long int 或或long表示。表示。(4)无符号整型,用)无符号整型,用unsigned表示。表示。无符号整型变量又分为:无符号整型变

18、量又分为:无符号整型,用无符号整型,用unsigned int表示。表示。无符号短整型,用无符号短整型,用unsigned short表示。表示。无符号长整型,用无符号长整型,用unsigned long表示。表示。第2章 数据类型、运算符和表达式2.3 整型数据整型数据2.3.2 整型变量整型变量2.整型变量的存储整型变量的存储 存储:存储:存储:存储:整型变量在内存中所占字节数如表整型变量在内存中所占字节数如表整型变量在内存中所占字节数如表整型变量在内存中所占字节数如表2-32-3所示。所示。所示。所示。在内存中存储整数时,一般以其最高位(即最左边一位)表在内存中存储整数时,一般以其最高位

19、(即最左边一位)表在内存中存储整数时,一般以其最高位(即最左边一位)表在内存中存储整数时,一般以其最高位(即最左边一位)表示数的符号,用示数的符号,用示数的符号,用示数的符号,用0 0表示正,用表示正,用表示正,用表示正,用1 1表示负。表示负。表示负。表示负。数值是以数值是以数值是以数值是以补码补码补码补码形式存放的:一个正数的补码就是该数的二进形式存放的:一个正数的补码就是该数的二进形式存放的:一个正数的补码就是该数的二进形式存放的:一个正数的补码就是该数的二进制数(例如,制数(例如,制数(例如,制数(例如,1010的补码为的补码为的补码为的补码为00000000 000010100000

20、0000 00001010);一个负数);一个负数);一个负数);一个负数的补码是:的补码是:的补码是:的补码是:取该数的绝对值;取该数的绝对值;取该数的绝对值;取该数的绝对值;以二进制形式表示;以二进制形式表示;以二进制形式表示;以二进制形式表示;对各位取反;对各位取反;对各位取反;对各位取反;加加加加1 1。例如例如例如例如-10-10的补码可以这样求:的补码可以这样求:的补码可以这样求:的补码可以这样求:先取先取先取先取1010;10 10的二进制码为的二进制码为的二进制码为的二进制码为00000000 0000101000000000 00001010;各位取反得各位取反得各位取反得各

21、位取反得11111111 1111010111111111 11110101;加加加加1 1得得得得11111111 1111011011111111 11110110,它就是,它就是,它就是,它就是-10-10的补码。的补码。的补码。的补码。第2章 数据类型、运算符和表达式2.3 整型数据整型数据2.3.2 整型变量整型变量2.整型变量的整型变量的存储存储【例【例2-3】用用sizeof运算符测定所用的运算符测定所用的C系统中各数据类型的长度。系统中各数据类型的长度。第2章 数据类型、运算符和表达式2.3 整型数据整型数据2.3.2 整型变量整型变量2.整型变量的整型变量的存储存储【例【例2

22、-4】整型数据的溢出。整型数据的溢出。第2章 数据类型、运算符和表达式2.3 整型数据整型数据2.3.2 整型变量整型变量3.整型变量整型变量的的定义定义对变量要对变量要“先定义,后使用先定义,后使用”,变量的定义要放在函数的开头部分。,变量的定义要放在函数的开头部分。【例【例2-5】整型变量的定义与使用。整型变量的定义与使用。第2章 数据类型、运算符和表达式2.4 实型数据实型数据2.4.1 实型常量实型常量 实型常量就是一个具体的实型常量就是一个具体的实型常量就是一个具体的实型常量就是一个具体的实数实数实数实数。表示形式:。表示形式:。表示形式:。表示形式:(1 1)小数形式。)小数形式。

23、)小数形式。)小数形式。例如,例如,例如,例如,2.52.5,-5.8-5.8,3.03.0等。等。等。等。(2 2)指数形式。)指数形式。)指数形式。)指数形式。指数表示形式由尾数和指数两部分组成。指数表示形式由尾数和指数两部分组成。指数表示形式由尾数和指数两部分组成。指数表示形式由尾数和指数两部分组成。指数由指数由指数由指数由“e”“e”或或或或“E”“E”开头。例如开头。例如开头。例如开头。例如123e3123e3或或或或 123E3 123E3都代表都代表都代表都代表123103 123103,123e-3123e-3或或或或123E-3123E-3都代表都代表都代表都代表12310-

24、312310-3。注意字母注意字母注意字母注意字母e e(或(或(或(或E E)之前)之前)之前)之前必须有数字必须有数字必须有数字必须有数字,且,且,且,且e e后面的指数必须为后面的指数必须为后面的指数必须为后面的指数必须为整数整数整数整数。规范化的指数形式规范化的指数形式规范化的指数形式规范化的指数形式是指尾数中,小数点左边应有一位(且只能是指尾数中,小数点左边应有一位(且只能是指尾数中,小数点左边应有一位(且只能是指尾数中,小数点左边应有一位(且只能有一位)非零的数字。例如有一位)非零的数字。例如有一位)非零的数字。例如有一位)非零的数字。例如2.3478e22.3478e2、3.09

25、99E-53.0999E-5都属于规范化都属于规范化都属于规范化都属于规范化的指数形式,而的指数形式,而的指数形式,而的指数形式,而12.908e612.908e6、0.456e30.456e3都不属于规范化的指数形式。都不属于规范化的指数形式。都不属于规范化的指数形式。都不属于规范化的指数形式。一个实数在用指数形式输出时,是按规范化的指数形式输出的。一个实数在用指数形式输出时,是按规范化的指数形式输出的。一个实数在用指数形式输出时,是按规范化的指数形式输出的。一个实数在用指数形式输出时,是按规范化的指数形式输出的。第2章 数据类型、运算符和表达式2.4 实型数据实型数据2.4.2 实型变量实

26、型变量 分类分类分类分类 :C C语言的实型变量分为两种:单精度和双精度,分别用语言的实型变量分为两种:单精度和双精度,分别用语言的实型变量分为两种:单精度和双精度,分别用语言的实型变量分为两种:单精度和双精度,分别用float float 和和和和doubledouble表示。表示。表示。表示。如表如表如表如表2-2-2 2所示。所示。所示。所示。说明:说明:说明:说明:实型常量不分单精度和双精度,一个实数可以赋值给一个实型常量不分单精度和双精度,一个实数可以赋值给一个实型常量不分单精度和双精度,一个实数可以赋值给一个实型常量不分单精度和双精度,一个实数可以赋值给一个floatfloat型变

27、量或型变量或型变量或型变量或doubledouble型变量。型变量。型变量。型变量。根据变量的类型截取实型变量中相应有效位的数字。根据变量的类型截取实型变量中相应有效位的数字。根据变量的类型截取实型变量中相应有效位的数字。根据变量的类型截取实型变量中相应有效位的数字。第2章 数据类型、运算符和表达式2.4 实型数据实型数据2.4.2 实型变量实型变量【例【例2-6】实型数据的表示。实型数据的表示。第2章 数据类型、运算符和表达式2.5 字符型数据字符型数据2.5.1 字符型常量字符型常量C语言中的字符常量是用语言中的字符常量是用单引号单引号括起来的一个字符。如:括起来的一个字符。如:a,A,6

28、等。等。字符型数据在内存中是以相应的字符型数据在内存中是以相应的ASCII码形式存放的。例如,码形式存放的。例如,a的的ASCII值为值为97,在内存中的存储形式为数字,在内存中的存储形式为数字97的二进制形式。的二进制形式。C语言中字符型数据和整型数据之间可以通用。一个字符数据既可语言中字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出以以字符形式输出,也可以以整数形式输出。【例【例2-7】写出下列程序的运行结果。写出下列程序的运行结果。第2章 数据类型、运算符和表达式2.5 字符型数据字符型数据2.5.1 字符型常量字符型常量在在C语言中,除了以上形式

29、的字符常量外,还允许使用一种特殊形语言中,除了以上形式的字符常量外,还允许使用一种特殊形式的字符常量,就是以一个式的字符常量,就是以一个开头的字符序列,称为开头的字符序列,称为“转义字符转义字符”C语言规定:语言规定:(1)以反斜线开头后面跟一个字母代表一个控制字符)以反斜线开头后面跟一个字母代表一个控制字符。如。如“n”中的中的“n”不代表字母不代表字母n而作为而作为“换行换行”符。符。(2)用)用“”代表字符代表字符“”,用,用代表撇号字符。代表撇号字符。(3)用)用“”后跟后跟1到到3个八进制数代表个八进制数代表ASCII码为该八进制数的字符;用码为该八进制数的字符;用x后跟后跟1到到2

30、个十六进制数代表个十六进制数代表ASCII码为该十六进制数的字符。码为该十六进制数的字符。第2章 数据类型、运算符和表达式2.5 字符型数据字符型数据2.5.1 字符型常量字符型常量【例【例2-8】写出下列程序的运行结果。写出下列程序的运行结果。第2章 数据类型、运算符和表达式2.5 字符型数据字符型数据2.5.2 字符型变量字符型变量字符型变量是用来存放字符常量的。它只能保存一个字符,而不是字符型变量是用来存放字符常量的。它只能保存一个字符,而不是一个字符串。一个字符串。在在C语言中有两种形式的字符型变量语言中有两种形式的字符型变量:字符变量字符变量 char c1;无无符号型字符符号型字符

31、变量变量:unsigned char c2;这这两种字符变量的用法是相同的,不同之处在于两种字符变量的用法是相同的,不同之处在于char型变量型变量ASCII值的取值范围是值的取值范围是0127,而,而unsigned char型变量的取型变量的取值范围是值范围是0255。第2章 数据类型、运算符和表达式2.5 字符型数据字符型数据2.5.2 字符型变量字符型变量字符数据在内存中是以整数形式存放的,字符数据在内存中是以整数形式存放的,字符型数据和整型数据之字符型数据和整型数据之间是可以通用的间是可以通用的。也可以对字符数据进行算术运算,此时相当于对。也可以对字符数据进行算术运算,此时相当于对它

32、们的它们的ASCII码值进行算术运算。码值进行算术运算。下面两个例子可以说明字符数据和整型数据之间的运算和转换。【例2-9】【例2-10】第2章 数据类型、运算符和表达式2.5 字符型数据字符型数据2.5.3 字符串常量字符串常量字符串常量是用一对双引号括起来的若干字符序列。例如:字符串常量是用一对双引号括起来的若干字符序列。例如:字符串常量是用一对双引号括起来的若干字符序列。例如:字符串常量是用一对双引号括起来的若干字符序列。例如:“abcd”“abcd”、“name”“name”、“123”“123”等。等。等。等。说明:说明:说明:说明:双引号双引号双引号双引号作为字符串定界符是不能出现

33、在字符串中的,如果要作为字符串定界符是不能出现在字符串中的,如果要作为字符串定界符是不能出现在字符串中的,如果要作为字符串定界符是不能出现在字符串中的,如果要在字符串中插入双引号和在字符串中插入双引号和在字符串中插入双引号和在字符串中插入双引号和,必须使用转义字符。,必须使用转义字符。,必须使用转义字符。,必须使用转义字符。字符串中的字符数称为该字符串中的字符数称为该字符串中的字符数称为该字符串中的字符数称为该字符串的长度字符串的长度字符串的长度字符串的长度。字符串常量在机器内存储时,系统自动在字符串的末尾加上字符串常量在机器内存储时,系统自动在字符串的末尾加上字符串常量在机器内存储时,系统自

34、动在字符串的末尾加上字符串常量在机器内存储时,系统自动在字符串的末尾加上一个一个一个一个结束标志结束标志结束标志结束标志,它是转义字符,它是转义字符,它是转义字符,它是转义字符00。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算运算运算运算运算(即操作)是对数据的加工。(即操作)是对数据的加工。(即操作)是对数据的加工。(即操作)是对数据的加工。运算符:运算符:运算符:运算符:操作的符号。操作的符号。操作的符号。操作的符号。数据:数据:数据:数据:是被运算的对象,可以是常量、变量或函数。是被运算的对象,可以是常量、变量或函数。是被运算的对象,可以是常量、变量或函数。是被运

35、算的对象,可以是常量、变量或函数。表达式:表达式:表达式:表达式:表示数据运算的式子表示数据运算的式子表示数据运算的式子表示数据运算的式子。C C语言提供了丰富的运算符,能构成多种表达式,它语言提供了丰富的运算符,能构成多种表达式,它语言提供了丰富的运算符,能构成多种表达式,它语言提供了丰富的运算符,能构成多种表达式,它把许多基本操作都作为运算符处理。把许多基本操作都作为运算符处理。把许多基本操作都作为运算符处理。把许多基本操作都作为运算符处理。学习运算符重点学习运算符重点学习运算符重点学习运算符重点:要掌握其:要掌握其:要掌握其:要掌握其运算规则、优先级和结运算规则、优先级和结运算规则、优先

36、级和结运算规则、优先级和结合性合性合性合性。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算2 2.6 6.1 1 算术运算和算术表达式算术运算和算术表达式算术运算和算术表达式算术运算和算术表达式1 1.基本算术运算基本算术运算基本算术运算基本算术运算符符符符 C C语言的算术运算符语言的算术运算符语言的算术运算符语言的算术运算符如表如表如表如表2 2-4 4所所所所示示示示。说明:说明:说明:说明:(1 1)“/”“/”是法除运算符,但是它与数学中的除法运算有所不是法除运算符,但是它与数学中的除法运算有所不是法除运算符,但是它与数学中的除法运算有所不是法除运算符,但是它与

37、数学中的除法运算有所不同。同。同。同。(2 2)“%”“%”是求模运算符,即两数相除所得的余数。是求模运算符,即两数相除所得的余数。是求模运算符,即两数相除所得的余数。是求模运算符,即两数相除所得的余数。C C语言要语言要语言要语言要求只能对整数进行求模运算。求只能对整数进行求模运算。求只能对整数进行求模运算。求只能对整数进行求模运算。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算2.2.6 6.1 1 算术运算和算术表达式算术运算和算术表达式算术运算和算术表达式算术运算和算术表达式2 2.算术表达式算术表达式算术表达式算术表达式 用算术运算符和括号将运算对象(也称操作数

38、)连接起来用算术运算符和括号将运算对象(也称操作数)连接起来用算术运算符和括号将运算对象(也称操作数)连接起来用算术运算符和括号将运算对象(也称操作数)连接起来的符合的符合的符合的符合C C语法规则的式子,称为语法规则的式子,称为语法规则的式子,称为语法规则的式子,称为C C算术表达式。算术表达式。算术表达式。算术表达式。运算对象运算对象运算对象运算对象包括常量、变量、函数等。包括常量、变量、函数等。包括常量、变量、函数等。包括常量、变量、函数等。3.3.运算符的优先级和结合性运算符的优先级和结合性运算符的优先级和结合性运算符的优先级和结合性(1 1)计算方法计算方法计算方法计算方法:先按运算

39、符的优先级的高低次序进行,如:先按运算符的优先级的高低次序进行,如:先按运算符的优先级的高低次序进行,如:先按运算符的优先级的高低次序进行,如果优先级相同,则按结合性处理。果优先级相同,则按结合性处理。果优先级相同,则按结合性处理。果优先级相同,则按结合性处理。(2 2)算术运算符的优先级:)算术运算符的优先级:)算术运算符的优先级:)算术运算符的优先级:“*“*、/、%”%”同级别,同级别,同级别,同级别,“+“+、-”-”同级别,但低于同级别,但低于同级别,但低于同级别,但低于“*“*、/、%”%”。(3 3)算术运算符的结合方向为)算术运算符的结合方向为)算术运算符的结合方向为)算术运算

40、符的结合方向为“自左至右自左至右自左至右自左至右”,即先左后右,即先左后右,即先左后右,即先左后右,也称为也称为也称为也称为“左结合左结合左结合左结合”。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算2.6.2 赋值赋值运算符与赋值表达式运算符与赋值表达式1 1.赋值赋值赋值赋值运算符运算符运算符运算符赋值赋值赋值赋值运算符为运算符为运算符为运算符为“=”“=”,它的作用是给变量赋值。由赋值运算符将一,它的作用是给变量赋值。由赋值运算符将一,它的作用是给变量赋值。由赋值运算符将一,它的作用是给变量赋值。由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。其一个

41、变量和一个表达式连接起来的式子称为赋值表达式。其一个变量和一个表达式连接起来的式子称为赋值表达式。其一个变量和一个表达式连接起来的式子称为赋值表达式。其一般形式为:般形式为:般形式为:般形式为:变量变量变量变量=表达式表达式表达式表达式 说明:说明:说明:说明:(1 1)“=”“=”的左边只能是变量,右边可以是常量、变量、函的左边只能是变量,右边可以是常量、变量、函的左边只能是变量,右边可以是常量、变量、函的左边只能是变量,右边可以是常量、变量、函数或表达式。结合性是数或表达式。结合性是数或表达式。结合性是数或表达式。结合性是右结合右结合右结合右结合。(2 2)当表达式值的类型与被赋值变量的类

42、型不一致时,系)当表达式值的类型与被赋值变量的类型不一致时,系)当表达式值的类型与被赋值变量的类型不一致时,系)当表达式值的类型与被赋值变量的类型不一致时,系统会自动将表达式的值转换成被赋值变量的数据类型。统会自动将表达式的值转换成被赋值变量的数据类型。统会自动将表达式的值转换成被赋值变量的数据类型。统会自动将表达式的值转换成被赋值变量的数据类型。(3 3)如果一个变量被多次赋值,那么前面的值会被后面的)如果一个变量被多次赋值,那么前面的值会被后面的)如果一个变量被多次赋值,那么前面的值会被后面的)如果一个变量被多次赋值,那么前面的值会被后面的值所覆盖,因此变量的最终取值是最后一次被赋予的值。

43、值所覆盖,因此变量的最终取值是最后一次被赋予的值。值所覆盖,因此变量的最终取值是最后一次被赋予的值。值所覆盖,因此变量的最终取值是最后一次被赋予的值。【例【例【例【例2-2-1212】写出下列程序的运行结果。写出下列程序的运行结果。写出下列程序的运行结果。写出下列程序的运行结果。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算2.2.6 6.2 2 赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式2 2.复合赋值运算符复合赋值运算符复合赋值运算符复合赋值运算符 C C语言规定可以使用语言规定可以使用语言规定可以使用语言规定可以使用10

44、10种复合赋值运算符,其中复合算术种复合赋值运算符,其中复合算术种复合赋值运算符,其中复合算术种复合赋值运算符,其中复合算术运算符有运算符有运算符有运算符有5 5个:个:个:个:+=+=、-=-=、*=*=、/=/=、%=%=说明:说明:说明:说明:各复合赋值运算符与普通赋值运算符的各复合赋值运算符与普通赋值运算符的各复合赋值运算符与普通赋值运算符的各复合赋值运算符与普通赋值运算符的优先级相同优先级相同优先级相同优先级相同,它们,它们,它们,它们的结合性为的结合性为的结合性为的结合性为右结合右结合右结合右结合。容易使人产生误解和错误。在编程时,语句的表达要清晰、容易使人产生误解和错误。在编程时

45、,语句的表达要清晰、容易使人产生误解和错误。在编程时,语句的表达要清晰、容易使人产生误解和错误。在编程时,语句的表达要清晰、易读,尽量少用或不用复杂的赋值表达式。易读,尽量少用或不用复杂的赋值表达式。易读,尽量少用或不用复杂的赋值表达式。易读,尽量少用或不用复杂的赋值表达式。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算2.2.6 6.2 2 赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式3赋值表达式赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子,称由赋值运算符将一个变量和一个表达式连接起来的式子,称为赋值表达式。为赋

46、值表达式。其一般格式为:其一般格式为:变量变量=表达式表达式赋值表达式的值就是被赋值变量的值。例如,有一个赋值表赋值表达式的值就是被赋值变量的值。例如,有一个赋值表达式达式:y=3 这个这个赋值表达式的值就是变量赋值表达式的值就是变量y的值的值3。若有如下语句。若有如下语句:x=y=3;则则变量变量x的值为的值为3。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算2.2.6 6.2 2 赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式4自增(自增(+)和自减()和自减(-)运算符)运算符自增、自减运算的作用是使变量的值加自增、自减运算

47、的作用是使变量的值加1或减或减1。根据。根据自增自减自增自减运算符在变量的前面还是后面,将其分为前置运算和后置运算。运算符在变量的前面还是后面,将其分为前置运算和后置运算。(1)前置运算)前置运算自增自减运算符在变量之前的称为前置运算。如:自增自减运算符在变量之前的称为前置运算。如:+i、-i。它的运算规则是:先使变量的值加它的运算规则是:先使变量的值加1或减或减1,再以变化后的,再以变化后的值参与其它运算。如:值参与其它运算。如:i=1;j=+i;执行执行以上语句后,以上语句后,i=2,j=2第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算2.2.6 6.2 2 赋值运算

48、符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式4自增(自增(+)和自减()和自减(-)运算符)运算符自增、自减运算的作用是使变量的值加自增、自减运算的作用是使变量的值加1或减或减1。根据。根据自增自减运算符在自增自减运算符在变量的前面还是后面,将其分为前置运算和后置运算。变量的前面还是后面,将其分为前置运算和后置运算。(2)后置运算)后置运算自增自减运算符在变量之后的称为后置运算。如:自增自减运算符在变量之后的称为后置运算。如:i+、i-。它的运算规则是:变量先参与其它运算,然后再使变量的值它的运算规则是:变量先参与其它运算,然后再使变量的值加加1或减或减1。

49、如:。如:i=1;j=i+;执行执行以上语句后,以上语句后,i=2,j=1。j的值为什么不是的值为什么不是2而是而是1呢?原呢?原因是在执行因是在执行j=i+时,先将时,先将i的值赋值给的值赋值给j,然后,然后i再自增变为再自增变为2,而在自增前,而在自增前i的值是的值是1,当然,当然j的值就是的值就是1了。了。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本运算2.2.6 6.2 2 赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式赋值运算符与赋值表达式4自增(自增(+)和自减()和自减(-)运算符)运算符说明:说明:(1)自增与自减运算符的优先级高于算术运

50、算符,自增自减运)自增与自减运算符的优先级高于算术运算符,自增自减运算符和单目运算符算符和单目运算符“+、-”(正负)属于同一级别。(正负)属于同一级别。(2)自增与自减运算的结合方向是)自增与自减运算的结合方向是“从右向左从右向左”,即,即右结合右结合。(3)自增或自减操作运行速度比其等价的赋值运算快得多,目)自增或自减操作运行速度比其等价的赋值运算快得多,目标代码的效率也更高,因此,在条件允许的情况下,若有标代码的效率也更高,因此,在条件允许的情况下,若有a=a+1和和a+两个选择,那么首选的应是两个选择,那么首选的应是a+。第2章 数据类型、运算符和表达式2.6 数据数据的基本运算的基本

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com