C05第3章操作符与表达式

C05第3章操作符与表达式

ID:38831732

大小:521.50 KB

页数:60页

时间:2019-06-20

C05第3章操作符与表达式_第1页
C05第3章操作符与表达式_第2页
C05第3章操作符与表达式_第3页
C05第3章操作符与表达式_第4页
C05第3章操作符与表达式_第5页
资源描述:

《C05第3章操作符与表达式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、新编C语言程序设计教程清华大学出版社周二强zeq@hncj.edu.cn软件学院计算机科学与工程系配套视频:zeq126.56.com博客:blog.csdn.net/stunt第3章操作符与表达式3.1概述3.2赋值操作符和赋值表达式3.2.1赋值操作符3.2.2类型不匹配时的赋值操作3.2.3复合赋值操作符3.3算术操作符和算术表达式3.3.1算术表达式的求值3.3.2强制类型转换操作符3.3.3自增自减操作符3.4逗号操作符和逗号表达式3.5值与编译系统相关的表达式3.6典型例题分析操作符操作符也

2、称运算符,是一种表示对数据进行何种处理的符号,如+,-,*,&等。操作符处理的对象(数据)称为操作数。操作数可以是字面量、变量或函数调用等。根据所需操作数的个数,操作符可分类为单目操作符(一个操作数),双目操作符(二个操作数)和三目操作符(三个操作数)。根据功能,操作符可分为赋值、算术、关系与逻辑、位和地址操作符等几种。表达式用操作符把操作数连接起来的,符合C语言语法规则的式子如3+2*5-6,称作表达式。C语言丰富的操作符构成了种类繁多的表达式。C语言表达式最重要的特征是每个表达式都有一个确定的值及(

3、该值的)类型。所谓表达式的值是指按照规定的规则,对表达式进行运算所得到的结果。求解表达式的值要求解表达式的值就必须熟悉操作符的运算顺序。表达式中操作符的运算顺序服从于操作符的优先级和结合性规则。3+2*5-6优先级规则要求表达式求值时,优先级高的操作符先进行运算,类似于熟知的“先乘除后加减”规则。表达式中两个相邻的操作符具有相同的优先级时,首先运算哪一个操作符的问题由操作符的结合性规则来决定。结合性显然优先级相同的操作符的结合性也相同。若按自左向右的顺序进行运算,则称该优先级的操作符的结合性为左结合;若

4、按自右向左的顺序进行运算,则称该优先级的操作符的结合性为右结合。+、-、*、/C语言表达式举例其中的字母均为变量。i+(j–m/n)%5n>5&&i%3==0x=y++%2i>j?n=2:n=-2n>>=2x=3,y*=6,89+56常见的数学运算C语言表达式中的操作符和操作数必须写在同一行上。对于数学上复杂的表达式如在改写成单行的表达式时需用到库函数。常见的数学运算如求绝对值、求平方根、求幂等在C语言中都已用库函数实现,如求绝对值可用fabs函数,求平方根可用sqrt函数,求幂可用pow函数。有关数学

5、运算的库函数归类在数学库中,在math.h头文件中声明。用include命令把math.h头文件包含到程序中后,就可以方便地使用这些有关数学运算的库函数了。(fabs(a)+sqrt(b*b-pow(x,y)))/5(fabs(a)+sqrt(b*b-pow(x,y)))*0.2表达式求值和C语句表达式求值时,不仅需要注意操作符的优先级和结合性,还需注意操作数的数据类型和表达式的序列点。5/25/2.0在后面加一个分号(;),C语言表达式就变成了C语句,此时计算机执行C语句的过程,就是对表达式“求值”的

6、过程。return3.2赋值操作符和赋值表达式赋值操作符“=”是双目操作符、右结合,由它构成的赋值表达式的一般形式为:变量=表达式。赋值表达式的操作是先计算出右边子表达式的值,再把值转换成变量的类型后存入变量所标示的存储空间。如:i=5/2;由于赋值操作符的优先级较低,可记为:先计算再赋值。例3-1分析下面程序的运行变量i的值并不会消失赋值语句i=i+1;执行过程中,会先计算赋值操作符右边子表达式i+1的值。在求i+1的值时变量i的值(1)被取到运算器中,然后运算器求出i+1的值为2。接着,计算结果会由

7、运算器传回到变量i所标识的存储单元中,变量i值变为2。变量i的值并不会因被“取到”运算器中而消失。计算后,运算器中的和会被赋值给变量i,因此这条语句不矛盾。变量i的值并不会消失执行赋值语句j=i;时,变量i所标示的内存空间的存储状态(2的补码)会被传送到变量j所标示的内存空间中,因此变量j的值变为2,变量j原来的值因为存储状态的改变而消失,但是变量i的值仍然为2,因为变量i所标示的内存空间的存储状态没有改变仍然为2的补码。计算机在执行时只是检测一下(只是检测没有改变)变量i所标示的内存空间的状态(相关导

8、线上的开关是接通还是断开),然后把变量j所标示的内存空间也设置成同样的状态。赋值表达式合法吗?赋值操作符左边的操作数只能是变量,如3=i、i++=5和a+b=23等的赋值表达式都不合法。赋值表达式i=j=k=23合法吗?赋值操作是右结合,故该表达式的操作顺序为i=(j=(k=23))。子表达式k=23是一个合法的赋值表达式。C语言表达式都有一个值,赋值表达式的值就是该表达式左边的操作数,即变量,也就是说表达式k=23执行完赋值操作后,它的值

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。