C语言第2章.ppt

上传人:s****8 文档编号:82771627 上传时间:2023-03-26 格式:PPT 页数:72 大小:1.56MB
返回 下载 相关 举报
C语言第2章.ppt_第1页
第1页 / 共72页
C语言第2章.ppt_第2页
第2页 / 共72页
点击查看更多>>
资源描述

《C语言第2章.ppt》由会员分享,可在线阅读,更多相关《C语言第2章.ppt(72页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第2章章 数据类型及其运算数据类型及其运算 基本字符和标识符基本字符和标识符 常量与变量常量与变量 数据类型数据类型 数据类型的转换数据类型的转换 运算符与表达式运算符与表达式 数据的输入和输出数据的输入和输出 赋值语句和顺序结构程序设计赋值语句和顺序结构程序设计 数学函数数学函数12/29/20221第第2章章 数据类型及其运算数据类型及其运算应用应用C语言实现所需要的功能,首先要了解语言实现所需要的功能,首先要了解C语语言的语法基础。言的语法基础。C程序的基本构成为数据与运算。程序的基本构成为数据与运算。广义的运算包含结构与函数的功能实现;狭义广义的运算包含结构与函数的功能实现;狭义的运

2、算为基本运算,即各类运算符运算。作为的运算为基本运算,即各类运算符运算。作为编制程序的计算机语言,须先了解编制程序的计算机语言,须先了解C语言的基本语言的基本元素:数据类型与基本运算。元素:数据类型与基本运算。引引引引 言言言言12/29/20222第第2章章 数据类型及其运算数据类型及其运算2.1 2.1 基本字符和标识符基本字符和标识符基本字符和标识符基本字符和标识符C程序由程序由C语言的基本字符组成,基本字符依据规则组语言的基本字符组成,基本字符依据规则组成成C语言的标识符与关键词。语言的标识符与关键词。C语言的语言的基本字符基本字符包括:包括:英文字母:英文字母:az,AZ;阿拉伯数字

3、:阿拉伯数字:09;字符:可显示的字符包括:字符:可显示的字符包括:!%&*():;”,.?/|以及不显示(或称空白符)的一些特殊字以及不显示(或称空白符)的一些特殊字符如:空格符、换行符、制表符等。符如:空格符、换行符、制表符等。基本字符基本字符12/29/20223第第2章章 数据类型及其运算数据类型及其运算标识符的构成规则:标识符的构成规则:(1)标识符只能由字母、下划线、数字三标识符只能由字母、下划线、数字三种字符组成,且第一个字符必须是字母或下划线。种字符组成,且第一个字符必须是字母或下划线。例:例:sun,_month1,student_name,c1lstr_2。12cd,$12

4、3,bad one,char,stu-name,M.D.Ritchie,-L2 错:错:2.1 2.1 基本字符和标识符基本字符和标识符基本字符和标识符基本字符和标识符标识符标识符用来标明变量名、函数名、数组名、结构体用来标明变量名、函数名、数组名、结构体名、共用体名、文件名、类型名等。必须由名、共用体名、文件名、类型名等。必须由有效字符组成。有效字符组成。(2)字母区分大小写,如字母区分大小写,如abc和和ABC是不同的标识符。是不同的标识符。(3)不能是不能是C语言中的关键字语言中的关键字(见表见表2-1)。12/29/20224第第2章章 数据类型及其运算数据类型及其运算2.1 2.1

5、基本字符和标识符基本字符和标识符基本字符和标识符基本字符和标识符C语言中系统规定具体特别意义的字符串称为关键字语言中系统规定具体特别意义的字符串称为关键字(亦称保留字)。关键字不能作为用户标识符。分为(亦称保留字)。关键字不能作为用户标识符。分为以下几类(表以下几类(表2-1):):(1)类型说明符。如表明整型的)类型说明符。如表明整型的int、表明字符型的、表明字符型的char等等。等等。(2)语句定义符。用于表示语句的功能的,如条件)语句定义符。用于表示语句的功能的,如条件选择结构中的选择结构中的if、else,循环结构中的,循环结构中的for、while、do等等。等等。(3)预处理命令

6、字。表示一个预处理命令,如文件)预处理命令字。表示一个预处理命令,如文件包含预处理命令包含预处理命令include等。等。关键字关键字12/29/20225第第2章章 数据类型及其运算数据类型及其运算程序运行中其值不发生变化的量。程序运行中其值不发生变化的量。程序运行中其值不发生变化的量。程序运行中其值不发生变化的量。常量常量常量常量2.2 2.2 常量与变量常量与变量常量与变量常量与变量 常量可分为字面常量和符号常量。常量可分为字面常量和符号常量。字面常量:通常的数字与字符,如字面常量:通常的数字与字符,如3,8,3.9,字符字符a,A,字符串,字符串“China”等。符号常量:即自定义常量

7、,用一个标识符代表某一个字面符号常量:即自定义常量,用一个标识符代表某一个字面常量,即给常量起个名字,以后就用这个名字代替这个常常量,即给常量起个名字,以后就用这个名字代替这个常量。通常利用量。通常利用C语言的宏定义命令语言的宏定义命令#define来实现。如来实现。如#define PI 3.1415926其含义是以标识符其含义是以标识符PI来代表数据来代表数据3.1415926,宏定义命令,宏定义命令之后,程序中凡是用到之后,程序中凡是用到3.1415926的地方都可以用更简单的地方都可以用更简单的标识符的标识符PI来替代来替代 12/29/20226第第2章章 数据类型及其运算数据类型及

8、其运算 变量变量变量变量程序运行中其值可以改变的量。程序运行中其值可以改变的量。程序运行中其值可以改变的量。程序运行中其值可以改变的量。2.2 2.2 常量与变量常量与变量常量与变量常量与变量变量有三个属性:变量有三个属性:(1)变量名,即标识符;变量名,即标识符;(2)存储空间,在内存中占用一定的存储单元,就如同存储空间,在内存中占用一定的存储单元,就如同宿舍号码对应一个房间,变量名对应着一段存储空间;宿舍号码对应一个房间,变量名对应着一段存储空间;存储空间大小由变量类型决定。存储空间大小由变量类型决定。(3)变量值,即该存储空间中存放的变量的值。变量值,即该存储空间中存放的变量的值。对于变

9、量,对于变量,C语言规定一定要语言规定一定要“先定义,后使用先定义,后使用”,也就,也就是说必须要先规定了变量的名字、数据类型之后,才能进是说必须要先规定了变量的名字、数据类型之后,才能进行各种运算。行各种运算。12/29/20227第第2章章 数据类型及其运算数据类型及其运算2.3 2.3 数据类型数据类型数据类型数据类型 数据类型的一般概念数据类型的一般概念数据类型的一般概念数据类型的一般概念数据类型规定了变量的三类限制:数据类型规定了变量的三类限制:其一,规定变量的存储空间大小,即内存中占字节的多少,其一,规定变量的存储空间大小,即内存中占字节的多少,例如,整型变量占例如,整型变量占2个

10、字节,实型变量占个字节,实型变量占4个字节。个字节。其二,规定变量的取值范围,例如,基本整型可以取其二,规定变量的取值范围,例如,基本整型可以取-3276832767。其三,规定数据能进行的运算,例如,整型数据可以进行其三,规定数据能进行的运算,例如,整型数据可以进行“求余数求余数”运算,而实型数据则不能。运算,而实型数据则不能。基本数据类型见图基本数据类型见图2-112/29/20228第第2章章 数据类型及其运算数据类型及其运算2.3.1 2.3.1 整型数据整型数据整型数据整型数据 整型常量整型常量整型常量整型常量整型常量,即整常数。按整型常量,即整常数。按进进制分,有三种表示形式:制分

11、,有三种表示形式:1.十进制,例如:十进制,例如:10,0,-1289。2.八进制,以数字八进制,以数字0开头,只允许用开头,只允许用07这这8个数字。个数字。例如:例如:010对应十进制的对应十进制的18108083.十六十六进进制,以制,以0 x或者或者0X开开头头,用,用09和和AF表示。表示。例如:例如:0 x10对应对应十十进进制的制的116101601612/29/20229第第2章章 数据类型及其运算数据类型及其运算2.3.1 2.3.1 整型数据整型数据整型数据整型数据 整型变量整型变量整型变量整型变量按照所占存按照所占存储储空空间间的不同,它可以分的不同,它可以分为为三种(从

12、而限制了每种三种(从而限制了每种变变量的取量的取值值范范围围):):(1)基本型:关基本型:关键键字字为为int,占,占2个字个字节节(16位),最高位位),最高位为为正正负负符符号位,取号位,取值值范范围围是是-215215-1,即,即-3276832767。(2)短整型:关短整型:关键键字字为为short int(int也可以省略不写也可以省略不写),占,占2个字个字节节(16位),最高位位),最高位为为正正负负符号位,取符号位,取值值范范围围是是-215215-1,即,即-3276832767。(3)长整型:关键字为长整型:关键字为long int(int也可以省略不写也可以省略不写),

13、占,占4个字节个字节(32位),最高位为正负符号位,取值范围是位),最高位为正负符号位,取值范围是-231231-1,即,即-21474836482147483647。12/29/202210第第2章章 数据类型及其运算数据类型及其运算2.3.1 2.3.1 整型数据整型数据整型数据整型数据 整型变量整型变量整型变量整型变量由于由于现实现实生活中生活中变变量的量的值值常常是正的(比如学生的学号),所常常是正的(比如学生的学号),所以,我以,我们还们还可以把可以把变变量定量定义义成无符号的数,成无符号的数,对应对应于上述三种有于上述三种有符号数(可以看作省略了修符号数(可以看作省略了修饰饰符符s

14、igned),就出),就出现现了下面三种了下面三种无符号的整型无符号的整型变变量:量:(1)无符号基本型:以无符号基本型:以unsigned int表示,占表示,占2个字个字节节(16位),位),所以取所以取值值范范围围是是0216-1,即,即065535。(2)无符号短整型:以无符号短整型:以unsigned short int表示表示(int可省略可省略),占占2个字节(个字节(16位),所以取值范围是位),所以取值范围是0216-1,即,即065535。(3)无符号长整型:以无符号长整型:以unsigned long int表示表示(int可省略可省略),占占4个字节(个字节(32位),

15、所以取值范围是位),所以取值范围是0232-1,即,即04294967295。12/29/202211第第2章章 数据类型及其运算数据类型及其运算存储类型存储类型 数据类型标识符数据类型标识符 变量变量1,变量,变量2,变量变量n;说明:说明:(1)方括号里的存储类型可以写也可以不写,表示变量方括号里的存储类型可以写也可以不写,表示变量在内存中的存储方式,将在内存中的存储方式,将在在“函数函数”一章详细介绍。一章详细介绍。(2)以以int定义基本整型、定义基本整型、short int或者或者short定义短整型、定义短整型、以以long int或者或者long定义长整型,而无符号的整型变量定义

16、,定义长整型,而无符号的整型变量定义,只需在相应的类型前加上只需在相应的类型前加上unsigned即可。即可。(3)整型数据在采用整型数据在采用printf函数输出时,要相应地使用函数输出时,要相应地使用%d或或者者%ld规定输出格式,详见规定输出格式,详见2.6节。节。变量定义变量定义变量定义变量定义变量定义的格式为:变量定义的格式为:12/29/202212第第2章章 数据类型及其运算数据类型及其运算#include stdio.hmain()int a;/*定义整型变量定义整型变量a*/int b,c;/*定义整型变量定义整型变量b、c*/a=1;/*给变量给变量a、b、c赋值赋值*/b

17、=2;c=a+b;printf(c=%d,c);/*输出变量输出变量c的值的值*/运行结果运行结果c=32.3 2.3 整型数据整型数据整型数据整型数据 整型变量整型变量整型变量整型变量例:例:12/29/202213第第2章章 数据类型及其运算数据类型及其运算2.3.2 2.3.2 实型数据实型数据实型数据实型数据 实型常量实型常量实型常量实型常量实实型常量,即型常量,即实实数或浮点数。有两种表示形式:数或浮点数。有两种表示形式:(1)十十进进制小数形式。例如:制小数形式。例如:10.5,0.0,-1.86。(2)指数形式。例如:指数形式。例如:1.3e4或者或者1.3E4,表示,表示1.3

18、104。指数形式通常用来表示一些比较大的数值,格式为:指数形式通常用来表示一些比较大的数值,格式为:实数部分实数部分+字母字母E或或e+正负号正负号+整数部分整数部分其中的其中的e表示十次方,正负号表示指数部分的符号,整数为表示十次方,正负号表示指数部分的符号,整数为幂的大小。字母幂的大小。字母E 或或e之前必须有数字,之后的数字必须为之前必须有数字,之后的数字必须为整数。整数。12/29/202214第第2章章 数据类型及其运算数据类型及其运算2.3.2 2.3.2 实型数据实型数据实型数据实型数据 实型常量实型常量实型常量实型常量实实型型变变量的分量的分类类(1)单单精度型:以精度型:以f

19、loat表示,占表示,占4个字个字节节(32位),提供位),提供7位有位有效数字,数效数字,数值值范范围围是是-3.410-38 3.41038。(2)双精度型:以双精度型:以double表示,占表示,占8个字节(个字节(64位),提供位),提供16位有效数字,数值范围是位有效数字,数值范围是-1.710-308 1.710308。(3)长双精度型:以长双精度型:以long double表示,占表示,占16个字节(个字节(128位),数值范围是位),数值范围是-1.210-4932 1.2104932。由于实型变量由有限的存储单元组成,能提供的有效数字由于实型变量由有限的存储单元组成,能提供的

20、有效数字总是有限的,在有效位以外的数字将无法正确处理,由此总是有限的,在有效位以外的数字将无法正确处理,由此可能会产生一些误差,称为实型数据的舍入误差。可能会产生一些误差,称为实型数据的舍入误差。VC系统系统中单精度有效数字为中单精度有效数字为7位,超过位,超过7位将无法正确显示。位将无法正确显示。12/29/202215第第2章章 数据类型及其运算数据类型及其运算2.3.2 2.3.2 实型数据实型数据实型数据实型数据 实型变量实型变量实型变量实型变量实型变量的定义与使用实型变量的定义与使用#include stdio.hmain()float a,b,c;/*定义实型变量定义实型变量a、b

21、、c*/a=1.0;/*给变量给变量a、b、c赋值赋值*/b=2.0;c=a+b;printf(c=%f,c);/*输出变量输出变量c的值的值*/运行结果运行结果c=3.00000012/29/202216第第2章章 数据类型及其运算数据类型及其运算字符常量字符常量 必须用单引号括起来,单引号中只能为单个字必须用单引号括起来,单引号中只能为单个字符符。在。在C语言中,字符型数据是用语言中,字符型数据是用ASCII码来表示码来表示(储存)的。储存)的。例:例:A(65),a(97)。在在C语言中,字符型数据与整型数据可通用:语言中,字符型数据与整型数据可通用:10+A字符串常量字符串常量 即一串

22、普通字符用双引号括起来。即一串普通字符用双引号括起来。例:例:“Turbo C”,“China”。长度为长度为n的字符串,在计算机的存储中占用的字符串,在计算机的存储中占用n+1个字节,个字节,最后最后一个字节是一个字节是0,作为字符串结束标志。,作为字符串结束标志。转义字符转义字符 以以“”开头的字符开头的字符根据右斜杠后面的不同根据右斜杠后面的不同字符表达相应的特定含义。转义字符通常表示一些控制字符表达相应的特定含义。转义字符通常表示一些控制代码和功能定义。代码和功能定义。例:例:n 表示回车表示回车-换行换行,r 表示回车表示回车。见书列表见书列表2.3.3 2.3.3 字符型数据字符型

23、数据字符型数据字符型数据12/29/202217第第2章章 数据类型及其运算数据类型及其运算2.3.3 2.3.3 字符型数据字符型数据字符型数据字符型数据 字符型变量字符型变量字符型变量字符型变量字符型变量在内存中占一个字节。其定义形式和整型、实型变量字符型变量在内存中占一个字节。其定义形式和整型、实型变量一样,只是数据类型标识符为一样,只是数据类型标识符为char。在采用。在采用printf函数输出时,函数输出时,要相应地使用要相应地使用%c(输出字符)或(输出字符)或%d(输(输ASCII码出整数)。码出整数)。#include main()char low,upp;low=a;upp=

24、low-32;printf(low=%c,upp=%cn,low,upp);printf(low=%d,upp=%dn,low,upp);运行结果运行结果low=a,upp=Alow=97,upp=65 将一个字符赋给一个字符变量中,实际上不是将一个字符赋给一个字符变量中,实际上不是把这个字符本身放到内存中,而是将其对应的把这个字符本身放到内存中,而是将其对应的ASCII码值放到内存中。码值放到内存中。12/29/202218第第2章章 数据类型及其运算数据类型及其运算要注意,字符常量和字符串常量是不同的,例如:要注意,字符常量和字符串常量是不同的,例如:A和和“A”是不相同的。其区别在于:是

25、不相同的。其区别在于:C语言规定在每个字符串语言规定在每个字符串的末尾加一个字符串结束标志,以便使系统判断字符串是的末尾加一个字符串结束标志,以便使系统判断字符串是否结束。否结束。C语言以字符语言以字符0作为字符串结束标志,它是作为字符串结束标志,它是ASCII码为码为0的字符,虽然不起任何控制作用,却占用一个的字符,虽然不起任何控制作用,却占用一个字节的存储空间。因此,字节的存储空间。因此,A在内存中占在内存中占1个字节的存储个字节的存储空间,而空间,而“A”则要占则要占2个字节。个字节。C语言中不存在字符串变量,要存储一个字符串则需要字语言中不存在字符串变量,要存储一个字符串则需要字符数组

26、。有关数组的内容,将在符数组。有关数组的内容,将在“数组数组”一章详细介绍。一章详细介绍。字符型变量在内存中占一个字节。前面说过字符型数据和字符型变量在内存中占一个字节。前面说过字符型数据和整型数据可以互用,但是整型占整型数据可以互用,但是整型占2个字节,字符型只占个字节,字符型只占1个个字节,故当整型量按字符型量处理时,只有低八位字节参字节,故当整型量按字符型量处理时,只有低八位字节参与处理。与处理。2.3.3 2.3.3 字符型数据字符型数据字符型数据字符型数据12/29/202219第第2章章 数据类型及其运算数据类型及其运算l数数值值l字符常量字符常量l字符串常量字符串常量 类类 型型

27、 进进 制制 表表 示示 范范 围围整型数整型数 八、八、十、十六十、十六 015,15,0 x15 -215 215-1长整型数长整型数 八、八、十、十六十、十六 015L,15L,0 x15L -231 231-1实型数实型数 十十 123.5,1.235e+2 10-381038单一字符,用单一字符,用 包围,包围,如:如:A,8。用用“”包围的一个或多个字符包围的一个或多个字符,如,如:“hello”。A和和“A”不相同不相同!注注意意 常量(小结)常量(小结)常量(小结)常量(小结)12/29/202220第第2章章 数据类型及其运算数据类型及其运算l特殊的字符常量(转义字符特殊的字

28、符常量(转义字符)后跟一个字符或一个数字,后跟一个字符或一个数字,表示控制代码和用于功能定义的字符表示控制代码和用于功能定义的字符 如如:字符字符 功能功能 n 回车换行回车换行 r 回车回车 t 水平制表水平制表 b 退格退格 v 垂直制表垂直制表 f 换页换页 a 响铃警报响铃警报 双引号字符双引号字符 101 A x41 A注注意意”、和和在在C语言中的表示法语言中的表示法 常量(小结)常量(小结)常量(小结)常量(小结)12/29/202221第第2章章 数据类型及其运算数据类型及其运算l变量说明格式变量说明格式 :l变量名变量名:存储类型存储类型 数据类型数据类型 变量名;变量名;英

29、文字母、数字、下划线;英文字母、数字、下划线;首字符必须是字母或下划线;首字符必须是字母或下划线;中间不能有空格,一般用小写;中间不能有空格,一般用小写;不要和关键字重名。不要和关键字重名。变量(小结)变量(小结)变量(小结)变量(小结)12/29/202222第第2章章 数据类型及其运算数据类型及其运算 变量(小结)变量(小结)变量(小结)变量(小结)12/29/202223第第2章章 数据类型及其运算数据类型及其运算C语言允许不同类型的数据混合运算,运算中可按照一定语言允许不同类型的数据混合运算,运算中可按照一定的自动规则或人为干预进行类型转换。分为:的自动规则或人为干预进行类型转换。分为

30、:隐式类型转换隐式类型转换 显示类型转换显示类型转换2.4 2.4 数据类型转换数据类型转换12/29/202224第第2章章 数据类型及其运算数据类型及其运算隐式类型转换由编译系统自动进行,不需人为干预。自动转隐式类型转换由编译系统自动进行,不需人为干预。自动转换遵循三个基本规则换遵循三个基本规则。(1)如参与运算的变量类型不同,则先转换成同一类型,)如参与运算的变量类型不同,则先转换成同一类型,然后进行运算。然后进行运算。(2)“低级向高级转换低级向高级转换”原则,如果运算中有几种不同类原则,如果运算中有几种不同类型的操作数,则统一转换为类型最高的数据的类型,再进行型的操作数,则统一转换为

31、类型最高的数据的类型,再进行运算,结果为最高数据类型。类型转换方向见图运算,结果为最高数据类型。类型转换方向见图2-2 隐式类型转换隐式类型转换2.4 2.4 数据类型转换数据类型转换例:例:若若int a=2;double b=1.7;那么计算那么计算a+b时,是先将时,是先将a转换成较高的转换成较高的double型型2.0,然后,然后与与b相加,结果是相加,结果是double型型3.7。12/29/202225第第2章章 数据类型及其运算数据类型及其运算(3)赋值运算两边的数据类型不同时,赋值号右边量的类)赋值运算两边的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如上面型将转换

32、为左边量的类型。如上面a+b计算结果为计算结果为double型,型,如定义另一个整型变量如定义另一个整型变量d,将计算结果赋给,将计算结果赋给d:隐式类型转换隐式类型转换2.4 2.4 数据类型转换数据类型转换例:例:int d;d=a+b;则计算结果会再转换为整型赋给则计算结果会再转换为整型赋给d,d得到的值仍为整型,得到的值仍为整型,d=3。因为右边量的数据类型高于左边,故会丢失一部分数。因为右边量的数据类型高于左边,故会丢失一部分数据,此处只保留整数部分。据,此处只保留整数部分。12/29/202226第第2章章 数据类型及其运算数据类型及其运算 显式类型转换显式类型转换 即强制类型转换

33、,是直接将某数据强制转换成即强制类型转换,是直接将某数据强制转换成指定的数据类型。指定的数据类型。如:如:(double)a、(int)(x+y)、(int)x+y、(float)(8%5)注意:强制类型转注意:强制类型转换只作用于表达式换只作用于表达式的结果,并不改变的结果,并不改变各个变量本身的数各个变量本身的数据类型。据类型。2.4 2.4 数据类型转换数据类型转换其格式为:(数据类型标识符)表达式;其格式为:(数据类型标识符)表达式;12/29/202227第第2章章 数据类型及其运算数据类型及其运算 显式类型转换显式类型转换 即强制类型转换,是直接将某数据强制转换成即强制类型转换,是

34、直接将某数据强制转换成指定的数据类型。指定的数据类型。如:如:(double)a、(int)(x+y)、(int)x+y、(float)(8%5)注意:强制类型转注意:强制类型转换只作用于表达式换只作用于表达式的结果,并不改变的结果,并不改变各个变量本身的数各个变量本身的数据类型。据类型。2.4 2.4 数据类型转换数据类型转换其格式为:(数据类型标识符)表达式;其格式为:(数据类型标识符)表达式;12/29/202228第第2章章 数据类型及其运算数据类型及其运算 显式类型转换显式类型转换例:例:#include main()int a=5;float b=3.1415,c=1.17;a=2

35、*(int)c;/*将将c表示的浮点值强制转换为整型,结果为表示的浮点值强制转换为整型,结果为1,乘法式等价于乘法式等价于a=2*1;但但c仍然为浮点型仍然为浮点型*/b=(int)(2.78+a);/*将将2.78+a的结果强制转换为整型,结果为的结果强制转换为整型,结果为4,但但b仍为浮点型,其值为仍为浮点型,其值为4.000000*/printf(a=%d,b=%f,c=%fn,a,b);2.4 2.4 数据类型转换数据类型转换运行结果:运行结果:a=2,b=4.000000,c=1.170000 12/29/202229第第2章章 数据类型及其运算数据类型及其运算2.5 2.5 运算符

36、和表达式运算符和表达式运算符和表达式运算符和表达式 运算符和表达式概述运算符和表达式概述运算符和表达式概述运算符和表达式概述运算运算运算符运算符运算量运算量运算表达式运算表达式对数据进行处理的过程对数据进行处理的过程表示各种数据处理的符号表示各种数据处理的符号被处理的数据被处理的数据运算符运算符+运算量运算量12/29/202230第第2章章 数据类型及其运算数据类型及其运算(1)算术运算符算术运算符(2)关系运算符关系运算符(3)逻辑运算符逻辑运算符(4)赋值运算符赋值运算符 复合算术赋值复合算术赋值 复合位运算赋值复合位运算赋值(5)自增自减运算符自增自减运算符(6)逗号运算符逗号运算符(

37、7)条件运算符条件运算符(8)指针运算符指针运算符(9)地址运算符地址运算符(10)构造类型特殊运算符构造类型特殊运算符(12)圆括号运算符圆括号运算符(13)大括号运算符大括号运算符(14)长度运算符长度运算符(15)数据类型转换运算符数据类型转换运算符(16)位运算运算符位运算运算符运算符运算符+、-、*、/、%、=、=、!、!=&、|、!、!=+=、-=、*=、/=、%=&=、|=、=、=、=+、-,?:?:*&.(引用成员运算符引用成员运算符)(指向成员运算符指向成员运算符)(下标运算符下标运算符)()sizeof(类型标识符类型标识符)(类型标识符类型标识符)表达式表达式&、|、12

38、/29/202231第第2章章 数据类型及其运算数据类型及其运算 算术运算符和算术表达式算术运算符和算术表达式算术运算符和算术表达式算术运算符和算术表达式 名名 称称 运算符运算符 运算规则运算规则 算术表达式算术表达式 正正 +取原值取原值 +6 负负 -取负值取负值 -6 加加 +加法加法 3+4 减减 -减法减法 3-4 乘乘 *乘法乘法 3*4,2*x 除除 /除法除法 5/3,(x+y)/(a+b)模模%整除取余整除取余 5%3,3%5算术运算符及其表达式算术运算符及其表达式12/29/202232第第2章章 数据类型及其运算数据类型及其运算 算术运算符和算术表达式算术运算符和算术表

39、达式算术运算符和算术表达式算术运算符和算术表达式注意注意C 语言中乘法、除法运算符的表示与数学中的表示不同。语言中乘法、除法运算符的表示与数学中的表示不同。例:例:2*x、x+sqrt(0.25*y)/(abs(a+b)-3.6)C语言中没有乘方运算符。例:语言中没有乘方运算符。例:3.14*r*r、pow(3,4)(表示(表示34)两整数相除值为整数。例:两整数相除值为整数。例:3/5=0取模运算符取模运算符“%”只适用于两个整型数取模运算。例:只适用于两个整型数取模运算。例:7%3=2取模运算符求余结果的符号由被除数决定:取模运算符求余结果的符号由被除数决定:例:例:7%(-3)=1;(-

40、7)%3=-112/29/202233第第2章章 数据类型及其运算数据类型及其运算 算术运算符和算术表达式算术运算符和算术表达式算术运算符和算术表达式算术运算符和算术表达式算术运算符的优先级与结合性算术运算符的优先级与结合性算术运算符的优先级是算术运算符的优先级是“先乘除,后加减先乘除,后加减”。算术运算符的结合性是算术运算符的结合性是“自左向右自左向右”。如果一个运算量两侧的运算符的优先级相同,如如果一个运算量两侧的运算符的优先级相同,如a+b-2,则,则按照结合方向处理,即按照结合方向处理,即b先与先与+结合,执行结合,执行a+b,然后再执,然后再执行减行减2的运算。这种的运算。这种“自左

41、向右自左向右”的结合又称为的结合又称为“左结合性左结合性”。例:算术表达式:例:算术表达式:6+8*3/4值为值为1212/29/202234第第2章章 数据类型及其运算数据类型及其运算 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式复合算术赋复合算术赋值运算符值运算符格式格式:变量变量=表达式表达式;先计算运算符右边的表达式,然后将其值赋给等号左边的变量。先计算运算符右边的表达式,然后将其值赋给等号左边的变量。名名 称称 运算符运算符 加赋值加赋值 +=减赋值减赋值 -=乘赋值乘赋值 *=除赋值除赋值 /=模赋值模赋值%=例:例:a+=b a=a+b

42、 a-=b a=a ba*=b a=a*ba/=b a=a/ba%=b a=a%b例:例:x=x+10;y=x*x+x;C语言赋值运算符与数学中的等号含义有着本质的不同。语言赋值运算符与数学中的等号含义有着本质的不同。简单赋简单赋值运算符:值运算符:=12/29/202235第第2章章 数据类型及其运算数据类型及其运算 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式复合位运算赋复合位运算赋值运算符值运算符按位与赋值运算符按位与赋值运算符&=,如如a&=b,等价于等价于a=a&b按位或赋值运算符按位或赋值运算符|=,如如a|=b,等价于等价于a=a|b按

43、位异或赋值运算符按位异或赋值运算符=,如如a=b,等价于等价于a=ab,位右移赋值运算符位右移赋值运算符=,如如a=b,等价于,等价于a=ab位左移赋值运算符位左移赋值运算符=b,如,如a=b,等价于,等价于a=ab12/29/202236第第2章章 数据类型及其运算数据类型及其运算 赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式简单赋值运算与自反赋值运算的结合性是简单赋值运算与自反赋值运算的结合性是“自右至左自右至左”。例:已知例:已知x=10,则,则x+=x-=60的值为?的值为?由于自反赋值运算的结合性是由于自反赋值运算的结合性是“自右至左自右至

44、左”,故先做故先做x-=60,等价于,等价于x=x-60,这时,这时x的值变为的值变为10-60,即即-50;然后再做然后再做x+=x,等价于,等价于x=x+x,则,则x的值变为的值变为-50+(-50),即即-100。所以最后结果为。所以最后结果为-100。12/29/202237第第2章章 数据类型及其运算数据类型及其运算自增自减运算符自增自减运算符自增自减运算符自增自减运算符 名名 称称 运算符运算符 说说 明明 例例增增 1(前缀)(前缀)+先加先加1,后使用。,后使用。+i 增增 1(后缀)(后缀)+先使用,后加先使用,后加1。i+减减 1(前缀)(前缀)-先减先减1,后使用。,后使

45、用。-i减减 1(后缀)(后缀)-先使用,后减先使用,后减1。i-例:例:int j,i=3;j=+i;例:例:int j,i=3;j=i+;自增自减运算仅限用于变量。自增自减运算不能用于常量或表达式。自增自减运算仅限用于变量。自增自减运算不能用于常量或表达式。结果:结果:i=4;j=4。结果:结果:i=4;j=3。12/29/202238第第2章章 数据类型及其运算数据类型及其运算自增自减运算符自增自减运算符自增自减运算符自增自减运算符自增自减运算符为右结合性,结合方向为自增自减运算符为右结合性,结合方向为“自右向左自右向左”。需要。需要注注意的是,由于自增自减运算符不能作用于表达式,因此一

46、个运意的是,由于自增自减运算符不能作用于表达式,因此一个运算量两侧不能同时使用自增或自减运算,如算量两侧不能同时使用自增或自减运算,如-i+是不合法是不合法的。所谓自增自减运算符的结合性是与其他同优先级的运算的。所谓自增自减运算符的结合性是与其他同优先级的运算符,如负号运算符符,如负号运算符-、逻辑非运算符、逻辑非运算符!出现在一个运算量两侧出现在一个运算量两侧时,按时,按“自右向左自右向左”方向计算。如:方向计算。如:a=-b+,因为负号运算,因为负号运算符符与与+运算符优先级相同,则表达式等价于运算符优先级相同,则表达式等价于a=-(b+)。但因为。但因为b+中自增运算符后置,所以并非中自

47、增运算符后置,所以并非b先加先加1再取负赋给再取负赋给a,而是,而是先用先用b取负赋给取负赋给a,b再加再加1。12/29/202239第第2章章 数据类型及其运算数据类型及其运算逗号表达式由逗号运算符连接常量、变量或表达式构成。逗号表达式由逗号运算符连接常量、变量或表达式构成。逗号表达式求解过程,先求表达式逗号表达式求解过程,先求表达式1,再求表达式,再求表达式2,再求,再求,直到求表达式直到求表达式n,整个表达式的值是最后一个表达式的值。整个表达式的值是最后一个表达式的值。逗号表达式格式:逗号表达式格式:表达式表达式 1,表达式,表达式 2 ,表达式表达式 n;例:例:3+5,6+8;例:

48、例:a=3*5,a*4;例:例:x=(a=3,6*3);例例:x=a=3,6*3;结果结果:14。结果结果:60。结果结果:x=18。结果结果:18。注意:在逗号表达式中,前后表达式使用同一个变量时,前一变注意:在逗号表达式中,前后表达式使用同一个变量时,前一变量的计算结果会影响后面表达式的计算结果,不能简单将表达式量的计算结果会影响后面表达式的计算结果,不能简单将表达式的值等于最后一个表达式的值。的值等于最后一个表达式的值。逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符和逗号表达式例如:若例如:若a=4;则;则a=3*5,a*4;的结果是多少?;的结果是多少?6

49、012/29/202240第第2章章 数据类型及其运算数据类型及其运算2.6 数据的输入输出数据的输入输出 2.6.1 2.6.1 格式化输入函数格式化输入函数 2.6.2 2.6.2 格式化输入函数格式化输入函数 2 2.6.3 .6.3 字符输入函数字符输入函数 2.6.4 2.6.4 字符输出函数字符输出函数12/29/202241第第2章章 数据类型及其运算数据类型及其运算2.6 数据的输入输出数据的输入输出 C语言数据通过输入输出函数实现。语言数据通过输入输出函数实现。C语言提供了一批标准语言提供了一批标准输入输出函数,这些函数包含在一些头文件中,称为库函数,输入输出函数,这些函数包

50、含在一些头文件中,称为库函数,要使用这些函数必须在程序开始先用文件包含命令要使用这些函数必须在程序开始先用文件包含命令#include包含这些头文件。本节将介绍一些常用的标准输入输出函数,包含这些头文件。本节将介绍一些常用的标准输入输出函数,这些函数包含在这些函数包含在stdio.h文件中,故在程序头必须添加命令文件中,故在程序头必须添加命令#include,或,或#include“stdio.h”。12/29/202242第第2章章 数据类型及其运算数据类型及其运算 scanf(“格式控制字符串格式控制字符串”,输入项地址列表,输入项地址列表);scanf(a=%d,b=%f,&a,&b);

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档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