表达式与操作符.pptx





《表达式与操作符.pptx》由会员分享,可在线阅读,更多相关《表达式与操作符.pptx(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、5.1 5.1 表达式和语句表达式和语句在C语言中,语句是程序功能的基本执行单位,多个语句结合在一起可以完成一些特定的功能;而一个语句又由若干个表达式组成;此外,语句和表达式可以通过一定的手段来相互转换。本节将讨论表达式和语句的概念和使用。第1页/共72页5.1.1 5.1.1 表达式表达式表达式是C语句的主体。在C语言中,表达式由操作符和操作数组成。操作符可以是+、-、*、/或%一类的运算操作符,也可以是、max/*表达式4*/fun(b)/*表达式5*/第3页/共72页5.1.1 5.1.1 表达式表达式2复杂表达式在复杂表达式中,每一个操作符和它的操作数组成的表达式为复杂表达式的子表达式
2、。例如:b=d+e;下列5个表达式都是复杂表达式,它们依次是上面的5个简单表达式的复杂化版本。c=b+2/*表达式1*/4+25*3/*表达式2*/*ptr=length/*表达式3*/key+incre max/*表达式4*/fun(7+5-3)/*表达式5*/第4页/共72页5.1.2 5.1.2 语句语句语句是计算机运行C程序的基本执行单元,一个程序是由一系列的语句组成。在C语言中,一条完整的语句由表达式和分号的。例如:/*表达式;*/var=2;其中的表达式部分可以是最简单的表达式,也可以是很冗长的复杂表达式,还可以为空。最简单的语句就是一条空语句,即只有一个分号,如下所示;第5页/共
3、72页5.1.2 5.1.2 语句语句这个语句虽然什么都没有做,但是有时候在逻辑上却需要这样的空语句。例如,要求在一个数组里得到某个值的下标,程序如下所示:for(int i=0;i max&arrayi!=target;+i);/*功能已完整,无需执行体*/上面是一个完整的for语句结构。在功能上,只需要执行循环判断部分(i b)/*if语句*/03c=a;04a=b;05b=c;06第8页/共72页5.1.3 5.1.3 复合语句复合语句如果不使用花括号把三条操作语句联合为复合语句,将无法实现正常的功能,例如:01if(a b)02c=a;03a=b;04b=c;对齐代码后,等效于:01i
4、f(a b)02c=a;03a=b;04b=c;第9页/共72页5.1.3 5.1.3 复合语句复合语句2提高程序可读性除了用在特殊语句内,复合还可以将一些完成单一功能的语句放在一个花括号中,以提高程序可读性。3嵌套使用复合语句还可以嵌套使用。第10页/共72页5.1.3 C5.1.3 C操作符操作符操作符是C语言的重要组成,也是本章要讨论的重点。C语言提供了丰富的操作符,以完成各种各样的功能。C语言共有45个操作符,简单地分类展示如下:后缀操作符(4个):().-算术操作符(7个):+-*/%+-符号操作符(2个):+-逻辑操作符(3个):!&|第11页/共72页5.1.3 C5.1.3 C
5、操作符操作符关系操作符(6个):=&|条件操作符(1个):?:赋值操作符(11个):=*=/=%=+=-=&=|=逗号操作符(1个):,转型操作符(1个):(数据类型名)即(int)、(char)等地址操作符(2个):*&求字节操作符(1个):sizeof()第12页/共72页5.1.3 C5.1.3 C操作符操作符下面来讨论如何区分既可作为运算操作符,也可以作为地址操作符的*。01pro=a*b;02b=*ptr;03pro=a*ptr;/*两个*中间以及两边的空格可以为随意多个,也可以没有*/第13页/共72页5.2 5.2 赋值操作符与赋值表达式赋值操作符与赋值表达式赋值操作符是C语言中
6、最常用的操作符之一,其功能是为变量赋值。由赋值操作符所组成的表达式称为赋值表达式。本节将先讨论赋值操作符和赋值表达式的使用,在介绍左值和右值的概念,最后讨论赋值表达式中常见的类型转换的问题。第14页/共72页5.2.1 5.2.1 赋值操作符赋值操作符赋值操作符是一个二元操作符,其组成的赋值表达式的标准形式由变量、赋值操作符和一个表达式组成,如下所示:变量=表达式;赋值表达式的作用,就是把等号右边的表达式的值赋值给等号左边的变量。其中,赋值操作符左边的变量也称为左值,右边的表达式称为右值。赋值表达式的值即为语句执行后左值的值。第15页/共72页5.2.2 赋值操作符的结合性赋值操作符的结合性当
7、多个赋值操作符存在于同一条语句中时,按照C标准的规定,将会按照从右到左的结合方式先执行最右边的赋值操作符,再依次向左执行其余赋值操作符。例如:a=b=c=表达式;该语句会先执行最右边的赋值操作符,再执行中间的,最后执行左边的,即等效于:a=(b=(c=表达式);/*括号操作符的优先级是最高的*/第16页/共72页5.2.3 5.2.3 左值和右值左值和右值在C语言中,左值和右值是十分重要的概念。并不是所有的值都是可以改变的,可以改变的值被称为左值。之所以要称为左值,还因为只有可以改变的值才能放在赋值操作符的左边,即只有左值可以放在赋值操作符的左边,也可以说放在赋值操作符左边的都是左值。左值可以
8、是变量,如下所示:int year=2008;int型变量year被赋值为2008。左值也可以是部分表达式,如下:int*month;*month=2;第17页/共72页5.2.4 5.2.4 赋值表达式中的类型转换赋值表达式中的类型转换在赋值表达式中,当把一种类型的数据赋值给不同类型的变量时,编译器会隐式地把该数据进行类型转换,转换为该变量的类型后才赋值。例如:int small=2008;long long int large;large=small;第18页/共72页5.2.5 5.2.5 类型转换操作符类型转换操作符类型转换操作符是操作符中十分独特的一个,由一个小括号及包含在小括号里的
9、一个类型名称组成,如下所示:(int)(long long int)(float)类型转换操作符也是一个一元操作符,只带一个操作数,使用时放在操作数的前面。它的作用是把操作数的值的数据类型改变为操作符中的数据类型。如下所示为类型转换操作符的标准形式:(数据类型名)(表达式)第19页/共72页5.2.5 5.2.5 类型转换操作符类型转换操作符下面是几个使用类型转换符的实例:int i=(int)3.11;float f=(float)7;short int v=(short int)28;其中,double型常量3.11会转换为整型(会丢失数据)后赋值给int型变量i,int型变量7会转换为f
10、loat型(不会丢失数据)后赋值给float型变量f,int型数据28将转换为short int型(不会丢失数据)后赋值给short int型变量v。当表达式不仅仅是一个变量或一个常量时,需要把表达式放在小括号内。例如:m=(int)(3.7+2.5)这时,程序会对3.7和2.5的和类型转换为int型。如果没有括号,只是:m=(int)3.7+2.5第20页/共72页5.3 5.3 运算操作符与运算表达式运算操作符与运算表达式数值计算离不开运算操作符,都要依靠运算操作符将各种数值连接在一起来完成特定的数值计算。由运算操作符组成的表达式为运算表达式。本节将讨论各种基本运算操作符和运算表达式的使用
11、,同时还讨论与它们密切相关的符号操作符,以及运算表达式中的优先级、结合性和类型转换的问题。第21页/共72页5.3.1 5.3.1 运算操作符运算操作符运算操作符共有五个,分别是加法操作符(+)、减法操作符(-)、乘法操作符(*)、除法操作符(/)和求余操作符(%)。它们均为二元操作符,即操作符前后都需要有一个操作数。第22页/共72页5.3.1 5.3.1 运算操作符运算操作符1加法操作符加法操作符的功能即进行加法运算。例如:var=3+4+5+6+7;赋值操作符右侧为一个复杂的加法表达式,程序将先计算3和4的和,再计算该和与5的和,再计算该和与6的和,再计算该和与7的和,最后将最终的和赋值
12、给var。当然,操作数也可以是变量。例如:printf(“sum=%d”,a+b);/*变量a和b为加法操作符的两个操作数*/第23页/共72页5.3.1 5.3.1 运算操作符运算操作符2减法操作符减法操作符的功能即,进行减法运算。例如:diff=512 128;赋值操作符右侧即为减法表达式,将计算512和128的差作为该表达式的值,最后赋值给变量diff。第24页/共72页5.3.1 5.3.1 运算操作符运算操作符3乘法操作符乘法操作符的功能是将它的操作数进行乘法计算,得到的值作为乘法表达式的值。例如:area=length*width;赋值操作符右侧即为一个乘法表达式,将计算变量len
13、gth和变量width的乘积作为该子表达式的值,最后将该值赋值给area。第25页/共72页5.3.1 5.3.1 运算操作符运算操作符4除法操作符除法操作符的功能是将它的操作数进行除法运算,将得到的值作为除法表达式的值。例如:rate=distance/time;赋值操作符右侧为一个除法表达式,其功能是计算变量distance除以变量time的商,最后将该值赋给变量rate。第26页/共72页5.3.1 5.3.1 运算操作符运算操作符5求余操作符求余操作符的功能是求其左侧的操作数除以右侧操作数的余数。例如:digit=number%10;赋值操作符右侧为一个求余表达式,其作用为计算变量nu
14、mber除以10的余数,即变量number的个位数,最后将该值赋值给变量digit。第27页/共72页5.3.2 5.3.2 符号操作符符号操作符减法操作符(-)和加法操作符(+)不仅可以作为运算操作符,还可以作为符号操作符。1负号操作符负号操作符是一元操作符,其作用是改变操作数的符号。它的操作数跟在操作符后面,可以是整型、浮点型或字符型的常量或变量。例如:-25-74.0-c-a第28页/共72页5.3.2 5.3.2 符号操作符符号操作符2正号操作符正号操作符与负号操作符的使用方法类似,也是一元操作符,其操作数也放在操作符后面,也可以是整型、浮点型或字符型的常量或变量。但是,正号操作符的用
15、途没有负号操作符广,因为和数学意义上的正号意义,在一个数前面加上正号不会改变该数的值。例如:+(-25)+25+a第29页/共72页5.3.3 5.3.3 优先级与结合性优先级与结合性操作符的优先级是指操作符执行的先后顺序。当多个操作符共同存在于一个复杂表达式中时,需要按照一定的先后顺序执行;优先级高的操作符会比优先级低的操作符先被执行。例如:result=15+7*12 7/4;第30页/共72页5.3.3 5.3.3 优先级与结合性优先级与结合性下表总结了所有已接触到的操作符的优先级和结合性。其中优先级从上到下依次降低。第31页/共72页5.3.4 数值运算中的类型转换数值运算中的类型转换
16、在运算表达式中,当不同类型的数值之间进行运算时,编译器也会像在赋值表达式中那样进行隐式的类型转换。例如:area=4*7.5;其中,4为int型,7.5为double型。int型的4将先被转换为double型再与double型的7.5相乘。第32页/共72页5.3.4 数值运算中的类型转换数值运算中的类型转换数值运算中的类型转换遵从以下规则:char型和short型数据,不管是unsigned还是signed,在计算中都要先无条件转换为int型,即使是两个char型或short型数值相加。float型计算前会无条件转换为double型数值,以增加精度。其余类型的数值计算时,都要转换为数据类型级
17、别较高的后再计算。第33页/共72页5.3.4 数值运算中的类型转换数值运算中的类型转换数据类型级别是以能存储的数值范围来定义的,能储存的数值范围越大,数据类型级别越高。如下图所示:第34页/共72页5.3.5 5.3.5 复合的赋值操作符复合的赋值操作符赋值操作符与上面介绍的五种基本运算操作符结合,可以组成复合的赋值操作符:+=,-=,*=,/=和%=。他们使用形式与赋值操作符相似,都是二元操作符,而且左侧也只能为左值,右侧为右值;但是功能上比赋值操作符复杂。1+=该操作符由赋值操作符与加法操作符结合而成的,其使用形式为:左值+=右值;其作用为,将左值与右值相加的和赋给左值,等效于:左值=左
18、值+右值;第35页/共72页5.3.5 5.3.5 复合的赋值操作符复合的赋值操作符2-=该操作符由赋值操作符与减法操作符结合而成的,其使用形式为:左值-=右值;其作用为,将左值与右值相减的差赋给左值,等效于:左值=左值-右值;3*=该操作符由赋值操作符与乘法操作符结合而成的,其使用形式为:左值*=右值;其作用为,将左值与右值相乘的积赋给左值,等效于:左值=左值*右值第36页/共72页5.3.5 5.3.5 复合的赋值操作符复合的赋值操作符4/=该操作符由赋值操作符与除法操作符结合而成的,其使用形式为:左值/=右值;其作用为,将左值与右值相除的商赋给左值,等效于:左值=左值/右值;5%=该操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 表达式 操作

限制150内