《C语言程序设计实用教程_第4章运算符、表达式与语句.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计实用教程_第4章运算符、表达式与语句.ppt(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计实用教程语言程序设计实用教程Power point 制作:耿祥义 张跃平第第4 4章章 运算符、表达式与语句运算符、表达式与语句 2010-101主要内容及难点主要内容及难点 2010-102概述概述 本章讲解运算符、表达式和C语言中的语句。对于语句,本章主要讲解表达式语句、函数调用语句等,对于非常重要的条件分支语句、循环语句将在第5,6章分别单独讲解。本章不再叙述VC+6.0编译、链接、运行的过程。对于本章例子中的的C程序,在用VC+6.0时,要建立相应的工程,并将源文件加到工程中。2010-1034.1 运算符概述运算符概述 本节将介绍本节将介绍C C语言中的基本运算符。语言
2、中的基本运算符。各各种种运运算算符符都都会会涉涉及及到到分分类类(单单目目、二二目目或或三三目目)、优先级别和结合顺序优先级别和结合顺序(见附录见附录B B)。分分类类决决定定了了该该运运算算符符所所能能连连接接的的操操作作元元的的个个数数;级级别别决决定定了了不不同同运运算算符符进进行行计计算算的的先先后后顺顺序序;结结合合性性决决定多个定多个相同相同运算符进行计算的先后顺序运算符进行计算的先后顺序。对对任任何何运运算算符符使使用用时时主主要要关关注注它它的的分分类类、级级别别、结结合性。合性。2010-1044.2 算术运算符与算术表达式算术运算符与算术表达式 1算术运算符算术运算符 +(
3、加加)、-(减减)、*(乘乘)、/(除除),%(求余求余)和和-(求负求负)2算术表达式算术表达式 用用算算术术运运算算符符和和括括号号连连接接起起来来的的符符合合C语语言言语语法法规规则则的的式式子子称为算术表达式。称为算术表达式。假假设设x和和y是是整整型型变变量量,那那么么3*x+5*y 就就是是一一个个算算术术表表达达式式(C语言环境中语言环境中),而,而3x+5y就不是算术表达式。就不是算术表达式。3计算精度计算精度如果表达式中有浮点数,则按双精度进行运算。如果表达式中最高精度是long型整数,则按long精度进行运算如果表达式中最高精度低于int型,则按int精度进行运算。2010
4、-1054.3 赋值运算符与赋值表达式赋值运算符与赋值表达式 1赋值运算符赋值运算符 赋值运算符赋值运算符“=”(”(读作赋值读作赋值)是二目运算符、是二目运算符、1414级、右结合。级、右结合。它的作用是将符号它的作用是将符号“=”右面的值赋给左面的变量。右面的值赋给左面的变量。注意:左面的操作元必须是变量,不能是常量或表达式。注意:左面的操作元必须是变量,不能是常量或表达式。2赋值表达式赋值表达式 用用赋赋值值符符号号(包包括括括括号号)连连接接起起来来的的符符合合C语语法法规规则则的的式式子子,称为赋值表达式。称为赋值表达式。赋赋值值表表达达式式x=x+1的的功功能能是是将将变变量量x
5、x的的值值加加1 1后后再再赋赋值值给给变变量量x x(“=”不是数学中的等号)不是数学中的等号)。3复合赋值运算符复合赋值运算符 +=+=,-=,*=,/=,%=-=,*=,/=,%=复复合合赋赋值值运运算算符符的的作作用用是是:将将复复合合赋赋值值运运算算符符左左面面变变量量的的值值和和右右面面表表达达式式的的值值进进行行算算术术运运算算(使使用用复复合合运运算算符符中中的的算算术术运运算算符符),并并将将得得到到的的结结果果赋赋给给左面的变量。例如(假设左面的变量。例如(假设x是一个变量)是一个变量)x+=100 x+=100 等价于等价于 x=x+100 x=x+100 2010-10
6、64.4 自增、自减运算符自增、自减运算符 1自增、自减运算符自增、自减运算符 +,-自增、自减运算符是单目运算符自增、自减运算符是单目运算符 、2 2级、右结合。级、右结合。可可以以放放在在操操作作元元之之前前,也也可可以以放放在在操操作作元元之之后后。作作用用是是使使得得操操作元的值增作元的值增1 1或减或减1 1。注意:。注意:+,-的操作元必须是变量的操作元必须是变量 。2前缀运算、后缀运算前缀运算、后缀运算 前缀运算:当前缀运算:当+或或-出现在操作元即变量的前面时,先自增出现在操作元即变量的前面时,先自增(自减)变量后使用变量。如(自减)变量后使用变量。如 x=+n+12;x=+n
7、+12;的作用等价于的作用等价于 n=n+1;n=n+1;和和 x=n+12;x=n+12;后后缀缀运运算算:当当+或或-出出现现在在操操作作元元即即变变量量的的后后面面时时,先先使使用用变变量后自增(自减)变量。如量后自增(自减)变量。如 x=n+12;x=n+12;的作用等价于的作用等价于 x=n+12;x=n+12;和和 n=n+1;n=n+1;例例子子1(1(example4_1.cexample4_1.c)计算了几个算术表达式的值,并使用了自增、自减运算符。2010-1074.5 关系运算符与关系表达式关系运算符与关系表达式 1关系运算符关系运算符:=!=是是二二目目运运算算符符 、
8、6 6或或7 7级级、左左结结合合。关关系系运运算算符符用用来来比比较较两两个个表表达达式式的的值值。当当两两个个操操作作元元满满足足关关系系运运算算符符的的意意义义时时,运运算算结结果果时时1 1,否则是,否则是0 0。例如例如5 35 -38 -3的结果是的结果是1 1。2关系表达式关系表达式 用关系符(包括括号)连接起来的符合用关系符(包括括号)连接起来的符合C C语法规则的式子称为关语法规则的式子称为关系表达式。假设系表达式。假设x x和和y y都是都是intint型变量,那么型变量,那么x=12x=9y=9都是关系表都是关系表达式。达式。3 3注意事项注意事项 不要将关系运算符不要将
9、关系运算符“=”“=”和赋值运算符和赋值运算符“=”“=”相混淆,假设相混淆,假设x x是是一个一个intint型变量,其值是型变量,其值是-10-10,关系表达式关系表达式 x=-10 x=-10 的值是的值是1(1(判断变量判断变量x x的值是否等于的值是否等于-10-10)赋值表达式赋值表达式 x=-10 x=-10 的值是的值是-10-10(将(将-10-10赋值给变量赋值给变量x x)。)。2010-1084.6 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 1 逻辑运算符:逻辑运算符:&|!&|!其其中中&,|&,|为为二二目目运运算算符符,实实现现逻逻辑辑与与、逻逻辑辑或或;!为
10、为单单目目运运算算符符,实实现现逻逻辑辑非非。级级别别:&是是11级级,|是是12级级,!是是2级级。结结合合性性:&,|左左到到右右;!右右到到左左。运算法则如下:运算法则如下:&当两个操作元都是非零数时,运算结果是当两个操作元都是非零数时,运算结果是1,否则是,否则是0。|当两个操作元都是零时,运算结果是当两个操作元都是零时,运算结果是0,否则是,否则是1。!当操作元是非零时,运算结果是当操作元是非零时,运算结果是0,否则是,否则是1。C C语言用非零的数表示语言用非零的数表示“真真”,用,用0表示表示“假假”。2 2 逻辑表达式:逻辑表达式:逻逻辑辑符符号号(包包括括括括号号)连连接接起
11、起来来的的符符合合C语语法法规规则则的的式式子子称称为为逻逻辑辑表表达达式式。对于变对于变量量x,经常用表达式:经常用表达式:x 3或或x 3来表示变量的范围。来表示变量的范围。3 3短路特点短路特点 对对于于op 1&op2或或op 1|op2当当op1的的值值能能够够确确定定整整个个表表达达式式的的值值时时,C语语言言不再去计算不再去计算op2的值(的值(这时这时op2的值为何都不影响整个表达式的值)。的值为何都不影响整个表达式的值)。例子例子1(1(example4_2.cexample4_2.c)C程序计算了几个关系和逻辑表达式的值。2010-1094.7 类型转换运算符类型转换运算符
12、 1 类型转换运算符类型转换运算符 类型转换运算符的格式是:类型转换运算符的格式是:(类型类型)类类型型转转换换运运算算符符是是单单目目运运算算符符、2级级、右右结结合合。操操作作元元经经常常是是数值型数据。数值型数据。2 2 注意事项注意事项 需需要要注注意意的的是是,类类型型转转换换运运算算符符的的级级别别是是2级级,因因此此,(int)15.9+0.1的的结结果果是是15.1,即即相相当当于于:(int)15.9)+0.1,而而(int)(15.9+0.1)的结果才是的结果才是16。2010-10104.8 逗号运算符逗号运算符 1 逗号运算符逗号运算符 “,”运运算算符符是是二二目目运
13、运算算符符、15级级、左左结结合合。逗逗号号表表达达式式的的一一般般形式是:形式是:表达式表达式1,表达式表达式2 逗逗号号运运算算符符的的运运算算法法则则是是:首首先先计计算算表表达达式式1的的值值,然然后后计计算算表表达式达式2的值,运算的结果是表达式的值,运算的结果是表达式2的值。的值。2 2 注意事项注意事项 逗号表达式的扩充形式逗号表达式的扩充形式 表达式表达式1,1,表达式表达式2,2,表达式表达式n n 为为了了计计算算它它的的值值,需需要要依依次次计计算算表表达达式式1至至表表达达式式n的的值值,并并将表达式将表达式n的作为逗号表达式的值。的作为逗号表达式的值。显显然然逗逗号号
14、表表达达式式中中表表达达式式1 1至至表表达达式式n-1n-1的的值值影影响响表表达达式式n的的值,即各表达式之间形成一种依赖关系。例如,值,即各表达式之间形成一种依赖关系。例如,假设已声明了a,b,c,d四个int型变量,程序希望a的值是1,b的值比a多10,c的值比b多20,而d的值刚好是c的值,那么就可以执行如下的赋值语句(将一个逗号表达式的值赋给变量)d=(a=1,b=a+10,c=b+20);达到上述目的。2010-10114.9 运算符与表达式小结运算符与表达式小结 1 1编写可读性强的表达式编写可读性强的表达式 C的的表表达达式式就就是是用用运运算算符符连连接接起起来来的的符符合
15、合C C语语法法规规则则的的式式子子。在在编编写写程程序序时时尽尽量量的的使使用用括括号号()()运运算算符符号号来来实实现现想想要要的的运运算算次次序序,以免产生难以阅读或含糊不清的计算顺序。以免产生难以阅读或含糊不清的计算顺序。2 2表达式的表达式的“真真”与与“假假”表表达达式式都都是是有有值值的的,当当表表达达式式的的值值是是非非零零时时,称称表表达达式式为为“真真“,当表达式的值是零时,称表达式为,当表达式的值是零时,称表达式为“假假”。关系表达式、逻辑表达式的值只有关系表达式、逻辑表达式的值只有1 1(真真)和)和0 0(假假)。)。3 3良好的编程习惯良好的编程习惯在在编编辑辑源
16、源代代码码时时,允允许许在在操操作作元元和和运运算算符符之之间间保保留留一一个个或或多多个个空空格,适当地使用这一规则会让代码更加清晰。格,适当地使用这一规则会让代码更加清晰。2010-10124.10 语句语句 基本语句需要以分号结尾,基本语句需要以分号结尾,C C的语句可分为以下的语句可分为以下6 6类。类。1 1方法调用语句,如方法调用语句,如:printf(Hello);2 2表达式语句表达式语句,表达式尾加上分号构成表达式语句表达式尾加上分号构成表达式语句,如赋值语句如赋值语句:x=23;3 3复合语句复合语句可可以以用用一一对对大大括括号号 “”“”和和“”“”把把一一些些语语句句
17、括括起起来来构构成成复复合合语语句句,如如:z=123+x;printf(How are you%d,z);4 4特殊关键字构成的语句。例如:特殊关键字构成的语句。例如:break;(见第见第6章章)continue;(见第见第6章章)5 5空语句空语句 一个分号也是一条语句,称做空语句。一个分号也是一条语句,称做空语句。6 6控制语句控制语句控制语句分为条件分支语句、开关语句和循环语句控制语句分为条件分支语句、开关语句和循环语句 2010-10134.11 小节小节 掌握各种运算符的格式和运算法则。掌握各种运算符的格式和运算法则。在在表表达达式式中中尽尽量量避避免免出出现现难难以以阅阅读读的的计计算算顺顺序序,提提倡倡使使用用小小括括号号达达到到计计算算顺顺序序的的目目的的,以以便便增增强强代代码码的的可读性。可读性。自自增增、自自减减运运算算符符能能提提高高效效率率,但但不不可可滥滥用用,以以简简洁实用、可读性强为使用准则。洁实用、可读性强为使用准则。语语句句是是函函数数中中最最重重要要的的组组成成部部分分,给给出出了了计计算算机机需需要执行的操作。要执行的操作。复合语句是一条语句。复合语句是一条语句。2010-1014
限制150内