第02章ppt课件.ppt

上传人:豆**** 文档编号:77668414 上传时间:2023-03-16 格式:PPT 页数:39 大小:196.50KB
返回 下载 相关 举报
第02章ppt课件.ppt_第1页
第1页 / 共39页
第02章ppt课件.ppt_第2页
第2页 / 共39页
点击查看更多>>
资源描述

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

1、第02章ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望2.1 程序设计概述程序设计概述一个程序应包括对数据的描述和对数据处理的描述。一个程序应包括对数据的描述和对数据处理的描述。1对数据的描述,即数据结构。对数据的描述,即数据结构。在在C语言中,系统提供的数据结构,是以数据类型的形语言中,系统提供的数据结构,是以数据类型的形式出现的。式出现的。2对数据处理的描述,即计算机算法。算法是为解决对数据处理的描述,即计算机算法。算法是为解决一个问题而采取的方法

2、和步骤,是程序的灵魂。为此,著一个问题而采取的方法和步骤,是程序的灵魂。为此,著名计算机科学家沃思(名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:)提出一个公式:数据结构数据结构+算法算法=程序程序 实际上,一个程序除了数据结构和算法外,还必须使实际上,一个程序除了数据结构和算法外,还必须使用一种计算机语言,并采用结构化方法来表示。用一种计算机语言,并采用结构化方法来表示。算法的特性算法的特性算法算法有有穷性性确定性确定性有零个或多个有零个或多个输入入有一个或多个有一个或多个输出出有效性有效性算法算法-程序的灵魂程序的灵魂任何事情都有个步骤:菜谱、乐谱。任何事情都有个步骤:

3、菜谱、乐谱。对同一个问题,有不同的算法:对同一个问题,有不同的算法:例:求例:求1+2+3+100;算法有优劣之分;算法有优劣之分;C语言算法的三种基本结构:顺序、选择、循环;语言算法的三种基本结构:顺序、选择、循环;简单算法举例:简单算法举例:例例1、有黑和蓝两个墨水瓶,要求将其互换。算法分析:这是一个非数值运算问题。因为两个瓶子的墨水不能直接交换,所以,解决这一问题的关键是需要引入第三个墨水瓶。设第三个墨水瓶为白色,其交换步骤如下:将黑瓶中的黑墨水装入白瓶中;将蓝瓶中的蓝墨水装入黑瓶中;将白瓶中的黑墨水装入蓝瓶中;交换结束。例例2、判定、判定2000-2500年中的每一年是否是闰年?年中的

4、每一年是否是闰年?闰年的条件:闰年的条件:a、能被、能被4整除,但不能被整除,但不能被100整除的年份整除的年份都是闰年(都是闰年(1996、2004););b、能被、能被100整除,又能被整除,又能被400整除整除的年份是闰年(的年份是闰年(1600、2000)。)。算法表示如下:算法表示如下:s1:y=2000s2:若:若y不能被不能被4整除,则输出整除,则输出y”不是闰年不是闰年“。然后跳。然后跳到到s6;s3:若:若y能被能被4整除,不能被整除,不能被100整除,则输出整除,则输出y”是闰年是闰年“;然后跳到;然后跳到s6;s4:若:若y能被能被100整除,又能被整除,又能被400整除

5、,则输出整除,则输出y”是闰是闰年年“;否则输出;否则输出”不是闰年不是闰年“。然后转到。然后转到s6;s5:输出:输出“不是闰年不是闰年”;s6:y=y+1;s7:当:当y2500,算法,算法终止。终止。怎样表示一个算法?怎样表示一个算法?用自然语言表示算法:通俗易懂、文字冗长、容易出现用自然语言表示算法:通俗易懂、文字冗长、容易出现“歧义歧义”。用流程图表示算法:用图形表示,直观形象,易于理解用流程图表示算法:用图形表示,直观形象,易于理解。处理数据特定处理判断端点符语句1语句2顺序结构语句2判断表达式语句1不满足满足选择结构判断表达式循环体不满足满足循环结构传统流程图的弊病:(传统流程图

6、的弊病:(a bowl of spaghetti););N-S流程图:(美流程图:(美I.Nassi和和B.Shneiderman)去掉流线,)去掉流线,把所有的算法写在一个矩形框里;把所有的算法写在一个矩形框里;t=1i=2t=t*ii=i+1打印t直到i5PAD图图:(Problem Analysis Diagram););伪代码:介于自然语言与计算机语言之间的文字符号;伪代码:介于自然语言与计算机语言之间的文字符号;计算机语言:严格遵守所用语言的语法规则;计算机语言:严格遵守所用语言的语法规则;“自顶向下,逐步细化自顶向下,逐步细化”是结构化设计方法的主体思想;是结构化设计方法的主体思想

7、;2.2 C语言的数据类型语言的数据类型C语语言言提提供供的的数数据据结结构构,是是以以数数据据类类型型形形式式出出现现的的。具具体体分类如下:分类如下:1.基本类型基本类型分为整型、实型(又称浮点型)、字符型和枚举型四种。分为整型、实型(又称浮点型)、字符型和枚举型四种。2.构造类型构造类型分为数组类型、结构类型和共用类型三种。分为数组类型、结构类型和共用类型三种。3.指针类型。在第指针类型。在第9章中介绍。章中介绍。C语语言言中中的的数数据据,有有常常量量和和变变量量之之分分,它它们们分分别别属属于于上上述述这些类型。这些类型。本章将介绍基本类型中的整型、实型和字符型三种数据。本章将介绍基

8、本类型中的整型、实型和字符型三种数据。2.3 常量和变量常量和变量2.3.1 常量常量 1.常量的概念常量的概念 在程序运行过程中,其值不能被改变的量称为常量。在程序运行过程中,其值不能被改变的量称为常量。2.常量的分类常量的分类 (1)整型常量)整型常量(2)实型常量)实型常量(3)字符常量。)字符常量。(4)符号常量。)符号常量。常量的类型,可通过书写形式来判别。常量的类型,可通过书写形式来判别。2.3.2 变量变量1.变量的概念变量的概念在程序运行过程中,其值可以被改变的量称为在程序运行过程中,其值可以被改变的量称为变量变量。2.变量的两个要素变量的两个要素(1)变变量量名名。每每个个变

9、变量量都都必必须须有有一一个个名名字字变量名,变量命名遵循标识符命名规则。变量名,变量命名遵循标识符命名规则。(2)变变量量值值。在在程程序序运运行行过过程程中中,变变量量值值存存储储在在内内存存中中。在在程程序序中中,通通过过变变量量名名来来引引用用变变量量的值。的值。.标识符命名规则标识符命名规则(1)有有效效字字符符:只只能能由由字字母母、数数字字和和下下划划线线组组成成,且以字母或下划线开头且以字母或下划线开头。合法标识符:合法标识符:sum,average,_total,Class,lotus_2非法标识符:非法标识符:M.D.John,#123,3d64,ab3a变量名变量值存储单

10、元(2)有效长度:随编译系统而异,但至少前个字符)有效长度:随编译系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。有效。如果超长,则超长部分被舍弃。例如,由于例如,由于student_name和和student_number的前个字的前个字符相同,有的系统认为这两个变量,是一回事而不加区符相同,有的系统认为这两个变量,是一回事而不加区别。别。在在TC V2.0中,变量名(标识符)的有效长度为中,变量名(标识符)的有效长度为个字符,缺省值为。个字符,缺省值为。建议变量名长度不超过建议变量名长度不超过8个字符。个字符。(3)C语言的关键字不能用作变量名。语言的关键字不能用作变量名。注注意

11、意:C语语言言对对英英文文字字母母的的大大小小敏敏感感,即即同同一一字字母母的的大大小写,被认为是两个不同的字符。小写,被认为是两个不同的字符。习习惯惯上上,变变量量名名和和函函数数名名中中的的英英文文字字母母用用小小写写,以以增增加加可读性。可读性。思思考考题题:在在C语语言言中中,变变量量名名total与与变变量量名名TOTAL、ToTaL、tOtAl等是同一个变量吗?等是同一个变量吗?标识符命名的良好习惯标识符命名的良好习惯见名知意见名知意:所所谓谓“见见名名知知意意”是是指指,通通过过变变量量名名就就知知道道变变量量值值的的含含义义。通通常常应应选选择择能能表表示示数数据据含含义义的的

12、英英文文单单词词(或或缩缩写写)作作变变量名,或汉语拼音字头作变量名。量名,或汉语拼音字头作变量名。例例如如,name/xm(姓姓名名)、sex/xb(性性别别)、age/nl(年年龄)、龄)、salary/gz(工资)。(工资)。4.变量的定义与初始化变量的定义与初始化在在语语言言中中,要要求求对对所所有有用用到到的的变变量量,必必须须先先定定义义、后后使使用;且称在定义变量的同时进行赋初值的操作为变量初始化。用;且称在定义变量的同时进行赋初值的操作为变量初始化。(1)变量定义的一般格式)变量定义的一般格式数据类型数据类型 变量名变量名,变量名变量名2;例如,例如,float radius,

13、length,area;(2)变量初始化的一般格式)变量初始化的一般格式数据类型数据类型 变量名变量名=初值初值,变量名变量名2=初值初值2;例如,例如,float radius=2.5,length,area;关于计算机内部的信息表示关于计算机内部的信息表示!2.4 整型数据整型数据2.4.1 整型变量整型变量 1.分类分类 根据占用内存字节数的不同,整型变量又分为类:根据占用内存字节数的不同,整型变量又分为类:(1)基本整型(类型关键字为)基本整型(类型关键字为int)。)。(2)短整型(类型关键字为)短整型(类型关键字为short int)。)。(3)长整型(类型关键字为)长整型(类型关

14、键字为long int)。)。(4)无符号整型。无符号型又分为无符号基本整型)无符号整型。无符号型又分为无符号基本整型(unsigned int)、无符号短整型()、无符号短整型(unsigned short)和)和无符号长整型(无符号长整型(unsigned long)三种,只能用来存储无符)三种,只能用来存储无符号整数。号整数。2.占用内存字节数与值域占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。上述各类型整型变量占用的内存字节数,随系统而异。在在16位操作系统中,一般用字节表示一个位操作系统中,一般用字节表示一个int型变量,且型变量,且long型(型(字节)字节

15、)int型(型(字节)字节)short型(型(字节)字节)。整型数据在内存中的存放形式整型数据在内存中的存放形式是以二进制的形式存放的是以二进制的形式存放的int i;i=10;0 0 0 0 0 00 0 0 0 1 00001实际上,数值是以补码表示的。一个正数的实际上,数值是以补码表示的。一个正数的补码补码与其与其原码原码形式相同,负数该怎样表示呢?例如:求形式相同,负数该怎样表示呢?例如:求-10的补码?的补码?0 0 0 0 0 00 0 0 0 1 000011 1 1 1 1 11 1 1 1 0 111101 1 1 1 1 11 1 1 1 0 11101Step1:Step

16、2:Step3:原码取反再加1符号位例如,PC机中的一个int型变量,其值域为:-3276832767;一个unsigned型变量的值域为:065535。0 1 1 1 1 11 1 1 1 1 11111=32767符号位不表示数据位符号位不表示数据位signed int1 1 1 1 1 11 1 1 1 1 11111=65535代表数据代表数据的第的第1位位unsigned int整型数据的溢出整型数据的溢出程序演示:程序演示:main()int a,b;a=32767;b=a+1;printf(“%d,%d”,a,b);运行结果:运行结果:_0 1 1 1 1 11 1 1 1 1

17、111111 0 0 0 0 00 0 0 0 0 00000a=32767b=-32768解决方法?2.4.2 整型常量整型常量.三种表示形式三种表示形式整型常量即整常数,在语言中可用三种形式表示:整型常量即整常数,在语言中可用三种形式表示:(1)十进制。例如)十进制。例如10、36。(2)八进制(以数字开头)。例如)八进制(以数字开头)。例如012。(3)十六进制(以数字)十六进制(以数字+小写字母小写字母x开头)。例如开头)。例如0 x36。2.5 实型数据实型数据2.5.1 实型变量实型变量 语言的实型变量,分为两种:语言的实型变量,分为两种:(1)单精度型。类型关键字为)单精度型。类

18、型关键字为float,一般占字节,一般占字节(位)、提供位有效数字。(位)、提供位有效数字。(2)双精度型。类型关键字为)双精度型。类型关键字为double,一般占个字节、,一般占个字节、提供提供1516位有效数字。位有效数字。实型数据在内存中的存放形式:小数部分和指数部分实型数据在内存中的存放形式:小数部分和指数部分分别存放。分别存放。.3141591+数符小数部分.314159指数1013.141592.5.2 实型常量实型常量 .表示形式表示形式实型常量即实数,在语言中又称浮点数,其值有实型常量即实数,在语言中又称浮点数,其值有两种表达形式:两种表达形式:(1)十进制形式。例如)十进制形

19、式。例如3.14、9.8。(2)指数形式:)指数形式:E(e)。例如例如3.0+5等。等。.关于类型关于类型 实型常量不分实型常量不分float型和型和double型。一个实型常型。一个实型常量,可以赋给一个实型变量(量,可以赋给一个实型变量(float型或型或double型)。型)。2.6 字符型数据字符型数据2.6.1 字符常量字符常量1.字符常量的定义字符常量的定义用一对用一对单引号单引号括起来的单个字符,称为字符常量。括起来的单个字符,称为字符常量。例如,例如,A、等。等。字符数据在内存中存储的是字符的字符数据在内存中存储的是字符的ASCII码。码。2.转义字符转义字符语言还允许使用一

20、种特殊形式的字符常量,就是以语言还允许使用一种特殊形式的字符常量,就是以反斜杠反斜杠“”开头的转义字符。开头的转义字符。常用的转义字符:常用的转义字符:n,t,b,r,ddd,xhh;例:下面程序的输出结果?例:下面程序的输出结果?main()printf(“_ab_ct_derftgn”);printf(“htibbj_k”);注:其中注:其中“_”为空格;为空格;例例2 用转义字符输出可打印字符和不可打印字符。用转义字符输出可打印字符和不可打印字符。main()printf(“x4Fx4Bx21n”);printf(“x15 xABn”);程序运行结果如下:程序运行结果如下:!2.6.2

21、字符变量字符变量字符变量的类型关键字为字符变量的类型关键字为char,一般占用,一般占用1字节字节内存单内存单元。元。1.变量值的存储变量值的存储 字符变量用来存储字符常量。将一个字符常量存储到一字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的个字符变量中,实际上是将该字符的ASCII码值(无符号整码值(无符号整数)存储到内存单元中。数)存储到内存单元中。例如,例如,char ch1,ch2;/*定义两个字符变量:定义两个字符变量:ch1,ch2*/ch1=a;ch2=b;/*给字符变量赋值给字符变量赋值*/例:向字符变量赋以整数。例:向字符变量赋以整数。2.特

22、性特性字符数据在内存中存储的是字符的字符数据在内存中存储的是字符的ASCII码码 一个无一个无符号整数,其形式与整数的存储形式一样,所以语言允符号整数,其形式与整数的存储形式一样,所以语言允许字符型数据与整型数据之间通用。许字符型数据与整型数据之间通用。(1)一个字符型数据,既可以字符形式输出,也可以)一个字符型数据,既可以字符形式输出,也可以整数形式输出。整数形式输出。main()char ch1,ch2;ch1=a;ch2=b;printf(“ch1=%c,ch2=%cn”,ch1,ch2);printf(“ch1=%d,ch2=%dn”,ch1,ch2);程序运行结果:程序运行结果:ch

23、1=a,ch2=b ch1=97,ch2=98(2)允许对字符数据进行算术运算,此时就)允许对字符数据进行算术运算,此时就是对它们的是对它们的ASCII码值进行算术运算。码值进行算术运算。2.6.3 字符串常量字符串常量1.字符串常量的概念和字符串长度字符串常量的概念和字符串长度字符串常量是用一对字符串常量是用一对双引号双引号括起来的若干字括起来的若干字符序列。符序列。字符串中字符的个数称为字符串中字符的个数称为字符串长度字符串长度。长度。长度为为0的字符串(即一个字符都没有的字符串)称的字符串(即一个字符都没有的字符串)称为空串,表示为为空串,表示为“”(一对紧连的双引号)。(一对紧连的双引

24、号)。例如,例如,“How do you do.”、“Good morning.”等,都等,都是字符串常量,其长度分别为是字符串常量,其长度分别为14和和13(空格也是一个字(空格也是一个字符)。符)。如果反斜杠和双引号作为字符串中的有效字符,则如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。必须使用转义字符。例如:(例如:(1)C:msdosv6.22 C:msdosv6.22 (2)I say:Goodbye!I say:Goodbye!“2.字符串的存储字符串的存储C语言规定:在存储字符串常量时,由系统在字符串语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个的末

25、尾自动加一个0作为字符串的结束标志。作为字符串的结束标志。注意:在源程序中书写字符串常量时,不必加结束字注意:在源程序中书写字符串常量时,不必加结束字符符0,否则画蛇添足。,否则画蛇添足。如果有一个字符串为如果有一个字符串为“CHINA”,则它在内存中的实,则它在内存中的实际存储如下所示:际存储如下所示:最后一个字符最后一个字符0是系统自动加上的,它占用字节是系统自动加上的,它占用字节而非字节内存空间。而非字节内存空间。CHINA0综上所述,综上所述,字符常量字符常量A与字符串常量与字符串常量A是两回事是两回事:(1)定定界界符符不不同同:字字符符常常量量使使用用单单引引号号,而而字字符符串串

26、常量使用双引号;常量使用双引号;(2)长长度度不不同同:字字符符常常量量的的长长度度固固定定为为1,而而字字符符串串常量的长度,可以是常量的长度,可以是0,也可以是某个整数;,也可以是某个整数;(3)存存储储要要求求不不同同:字字符符常常量量存存储储的的是是字字符符的的ASCII码码值值,而而字字符符串串常常量量,除除了了要要存存储储有有效效的的字字符符外外,还还要要存储一个结束标志存储一个结束标志0。2.7 算术运算与算术表达式算术运算与算术表达式在语言中,除控制语句和输入输出函数外,其它所在语言中,除控制语句和输入输出函数外,其它所有基本操作都作为运算符处理。有基本操作都作为运算符处理。1

27、.五种基本算术运算符五种基本算术运算符 +、-(减法(减法/取负)、取负)、*、/、%(求余数)(求余数)(1)除法运算)除法运算/C语言规定:语言规定:两个整数相除,其商为整数,小数部分两个整数相除,其商为整数,小数部分被舍弃被舍弃。例如,。例如,5/2=2。(2)关于求余数运算:)关于求余数运算:2%5要求两侧的操作数均为整型数据,否则出错。要求两侧的操作数均为整型数据,否则出错。2.表达式和算术表达式表达式和算术表达式(1)表达式的概念)表达式的概念 用用运运算算符符和和括括号号将将运运算算对对象象(常常量量、变变量量和和函函数数等等)连接起来的、符合语言语法规则的式子,称为连接起来的、

28、符合语言语法规则的式子,称为表达式表达式。3.运算符的优先级与结合性运算符的优先级与结合性(1)语言规定了运算符的优先级和结合性。)语言规定了运算符的优先级和结合性。所所谓谓结结合合性性是是指指,当当一一个个操操作作数数两两侧侧的的运运算算符符具具有有相相同同的的优优先先级级时时,该该操操作作数数是是先先与与左左边边的的运运算符结合,还是先与右边的运算符结合。算符结合,还是先与右边的运算符结合。自自左左至至右右的的结结合合方方向向,称称为为左左结结合合性性。反反之之,称称为为右右结合性。结合性。结结合合性性是是语语言言的的独独有有概概念念。除除单单目目运运算算符符、赋赋值值运运算算符符和和条条

29、件件运运算算符符是是右右结结合合性性外外,其其它它运运算算符符都都是是左左结结合性。合性。(2)表达式求值)表达式求值1)按按运运算算符符的的优优先先级级高高低低次次序序执执行行。例例如如,先先乘乘除除后加减。后加减。2)如如果果在在一一个个运运算算对对象象(或或称称操操作作数数)两两侧侧的的运运算算符符的的优优先先级级相相同同,则则按按语语言言规规定定的的结结合合方方向向(结结合合性性)进行。进行。例例如如,算算术术运运算算符符的的结结合合方方向向是是“自自左左至至右右”,即即:在在执执行行“a b+c”时时,变变量量b先先与与减减号号结结合合,执执行行“a-b”;然后再执行加;然后再执行加

30、c的运算。的运算。4.数据类型转换数据类型转换一、不同类型数据间进行运算时,要转换成同一类型一、不同类型数据间进行运算时,要转换成同一类型 转换过程中,低类型向高类型靠拢,然后进行运转换过程中,低类型向高类型靠拢,然后进行运算,不同类型之间转换如下图所示,横向左箭头为必转,算,不同类型之间转换如下图所示,横向左箭头为必转,纵向箭头表示有条件类型转换。纵向箭头表示有条件类型转换。高高 double float long unsigned 低低 int char,short(2)除自动转换外,语言也允许)除自动转换外,语言也允许强制转换强制转换。格式为:格式为:(要转换成的数据类型要转换成的数据类

31、型)被转换的表达式被转换的表达式例如,例如,(double)a(等价于(等价于(double)(a)/*将变量将变量a的值转换成的值转换成double型型*/(int)(x+y)/*将将x+y的结果转换成的结果转换成int型型*/(float)5/2(等等价价于于(float)(5)/2)/*将将5转转换换成成实实型型,再再除除以以2(=2.5)*/(float)(5/2)/*将将5整整除除2的的结结果果(2)转转换换成实型(成实型(2.0)*/注注意意:强强制制转转换换类类型型得得到到的的是是一一个个所所需需类类型型的的中中间间量量,原原表表达达式式类类型型并并不不发发生生变变化化。例例如如

32、,(double)a 只只是是将将变变量量a的的值值转转换换成成一一个个double型型的的中中间间量量,其其数数据据类类型型并并未未转换成转换成double型。型。2.8 赋值运算与赋值表达式赋值运算与赋值表达式 1.赋值运算赋值运算 赋值符号赋值符号“=”就是赋值运算符,它的作用是将一个就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。表达式的值赋给一个变量。赋值运算符的一般形式为:赋值运算符的一般形式为:变量变量 =赋值表达式赋值表达式 例如,例如,x=5 y=(float)5/2 如果表达式值的类型,与被赋值变量的类型不一致,如果表达式值的类型,与被赋值变量的类型不一致,但都是数

33、值型或字符型时,系统自动地将表达式的值转但都是数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。换成被赋值变量的数据类型,然后再赋值给变量。思考题:思考题:假设变量假设变量num的数据类型为的数据类型为float,其值为,其值为2.5,则执行,则执行“num=(int)num”后,后,num的值等于多少?的值等于多少?2.复合赋值运算复合赋值运算复复合合赋赋值值运运算算符符是是由由赋赋值值运运算算符符之之前前再再加加一一个个双双目目运运算符构成的。算符构成的。格式为:格式为:变量变量 双目运算符双目运算符=表达式表达式 复合赋值运算符复合赋值运算符例,例,x

34、+=3 /*等价于等价于x=x+3*/y*=x+6/*等价于等价于y=y*(x+6),而不是,而不是y=y*x+6C语言规定的语言规定的10种复合赋值运算符:种复合赋值运算符:+=,-=,*=,/=,%=;/*复合算术运算符(复合算术运算符(5个)个)&=,=,|=,=;/*复合位运算符(复合位运算符(5个)个)3.赋值表达式赋值表达式由由赋赋值值运运算算符符或或复复合合赋赋值值运运算算符符,将将一一个个变变量量和和一一个个表表达达式式连连接接起起来来的的表表达达式式,称称为为赋赋值值表表达式。达式。例例如如,“a=5”这这个个赋赋值值表表达达式式,变变量量a的的值值“”就是它的值。就是它的值

35、。2.9 C语言特有的运算和运算符语言特有的运算和运算符2.9.1 自增(自增(+)、自减()、自减(-)运算)运算 1.作用作用 自增运算使单个变量的值增,自减运算使单个变自增运算使单个变量的值增,自减运算使单个变量的值减。量的值减。2.用法与运算规则用法与运算规则 自增、自减运算符都有两种用法:自增、自减运算符都有两种用法:(1)前置运算前置运算运算符放在变量之前:变量、运算符放在变量之前:变量、变量变量 先使变量的值增(或减),然后再以变化后的值先使变量的值增(或减),然后再以变化后的值参与其它运算,即先增减、后运算。参与其它运算,即先增减、后运算。(2)后置运算后置运算运算符放在变量之

36、后:变量、运算符放在变量之后:变量、变量变量 变量先参与其它运算,然后再使变量的值增(或减)变量先参与其它运算,然后再使变量的值增(或减),即先运算、后增减。,即先运算、后增减。例例2.4 自增、自减运算符的用法与运算规则示例。自增、自减运算符的用法与运算规则示例。main()int x=6,y;printf(x=%dn,x);/*输出输出x的初值的初值*/y=+x;/*前置运算前置运算*/printf(y=+x:x=%d,y=%dn,x,y);y=x-;/*后置运算后置运算*/printf(y=x-:x=%d,y=%dn,x,y);程序运行结果:程序运行结果:x=6y=+x:x=7,y=7y

37、=x-:x=6,y=7 思思考考题题:如如果果将将案案例例“y=+x;”语语句句中中的的前前置置运运算算改改为为后后置置(y=x+;),“y=x-;”语语句句中中的的后后置置运运算算改改为为前前置(置(y=-x;),结果会如何?),结果会如何?3.说明说明(1)自自增增、自自减减运运算算,常常用用于于循循环环语语句句中中,使使循循环环控控制制变变量量加加(或或减减),以以及及指指针针变变量量中中,使使指指针针指指向向下下(或上)一个地址。(或上)一个地址。(2)自增、自减运算符,不能用于常量和表达式。)自增、自减运算符,不能用于常量和表达式。例如,例如,5+、-(a+b)等都是非法的。等都是非

38、法的。(3)在在表表达达式式中中,连连续续使使同同一一变变量量进进行行自自增增或或自自减减运运算时,很容易出错,所以算时,很容易出错,所以避免避免这种用法。这种用法。int i=1;j=(+i)+(+i)+(+i)2.8.2 逗号运算(,)及其表达式逗号运算(,)及其表达式逗逗号号运运算算符符“,”连连接接起起来来的的式式子子,称称为为逗逗号号表表达达式式。逗号运算符又称顺序求值运算符。逗号运算符又称顺序求值运算符。1.一般形式一般形式表达式表达式,表达式表达式,表达式表达式n2.求解过程求解过程自自左左至至右右,依依次次计计算算各各表表达达式式的的值值,“表表达达式式n”的的值即为整个逗号表达式的值。值即为整个逗号表达式的值。例例如如,逗逗号号表表达达式式“a=3*5,a*4”的的值值=60:先先求求解解a=3*5,得得a=15;再再求求a*4=60,所所以以逗逗号号表表达达式式的的值值=60。又又例例如如,逗逗号号表表达达式式“(a=3*5,a*4),a+5”的的值值=20:先先求求解解a=3*5,得得a=15;再再求求a*4=60;最最后后求求解解a+5=20,所以逗号表达式的值,所以逗号表达式的值=20。注注意意:并并不不是是任任何何地地方方出出现现的的逗逗号号,都都是是逗逗号号运运算算符符。很多情况下,逗号仅用作分隔符。很多情况下,逗号仅用作分隔符。

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

当前位置:首页 > 教育专区 > 小学资料

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