欢迎来到天天文库
浏览记录
ID:5424579
大小:137.50 KB
页数:0页
时间:2017-11-12
《程序设计基础(c语言)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计基础(C语言)东北大学高级语言程序设计课程组课程网站:www.neu.edu.cn/cxsj计算机及程序设计概述运算符与表达式运算符C语言用于描述对数据进行运算的特殊符号C语言具有丰富而繁多的运算符由运算符构成了各种表达式分类C语言的运算符按其在表达式中与运算对象的关系单目运算一个运算符连接一个运算对象双目运算一个运算符连接两个运算对象三目运算一个运算符连接三个运算对象3运算符分类算术(自增/自减)运算符:(+,—,*,/,%、++、--)关系运算符:(>,<,>=,<=,!=,==)逻辑运算符:(!,&&,
2、
3、)
4、位运算符:(<<、>>、~、
5、、^、&)赋值运算符:(=)条件运算符:(?:)逗号运算符:(,)指针运算符:(*,&)强制类型转换运算符:(type)分量运算符:(.和)下标运算符:([])函数调用运算符:(())4运算符对运算符的掌握应从三个方面着手和操作符相关的数据类型(包括操作数和操作结果的数据类型)运算符的优先级运算符的结合次序5表达式用运算符将运算对象连接而成的符合C语言规则的算式特别地:一个常量、一个变量、一个函数都可以看成是一个表达式表达式的分类按照运算符与运算对象的关系单目表达式双目表达式三目表达式6表达
6、式表达式的分类按照运算符在表达式中的作用算术表达式,例:3+4*5赋值表达式,例:a=3关系表达式,例:5<6,a>b逻辑表达式,例:3>5&&a>=b条件表达式,例:a>b?a:b逗号表达式,例:a=3,b=4,c=5指针表达式,例:p-2,&a7表达式的求值过程C语言规定了运算符的优先级和结合性优先级指同一个表达式中不同运算符进行计算时的先后次序结合性结合性是指同一个表达式中相同优先级的多个运算应遵循的运算顺序C语言规定:单目运算符是自右向左结合,双目运算符是自左向右结合8表达式的求值过程表达式的求值过程按C规定的原则
7、求值表达式代表了一个具体的值实际上是一个数据加工的过程在表达式求值时,先按运算符的优先级级别的高低次序执行如果运算符两侧的优先级级别相同,则按规定的“结合方向”处理提示运算符的优先级制约着表达式的计算次序可以通过括号()来改变表达式求值的顺序表达式求值过程中存在某种类型数据的类型转换9算术表达式由算术运算符连接数值型运算对象构成其结果可以是整数、单精度实数和双精度实数例:inta=2;floatb=4.5;表达式2*a+b的结果为8.5优先给与结合性提示两个整数相除其结果仍为整数(即舍去小数部分)例如:13/10的结果为1
8、“%”为求余运算符,参与运算的两个数均为整数例如:10%3=1-10%3=-1除以0在计算机系统中是没有意义的用括号可以改变表达式的运算顺序10算术表达式算术表达式例1:设intb=7;floata=2.5,c=4.7;表达式a+(int)(b/3*(int)(a+c)/2)%4的值?例2:11自增/自减“++”与“--”的作用是使变量的值增1或减1C语言提供两种形式的++/--运算符++a,--a(前缀运算:先进行增量运算后使用)a++,a--(后缀运算:先使用后进行增量运算)提示:增和自减只能作用于变量,不允许对常量、
9、表达式或其它进行操作当自增/自减变量值本身就单独构成一条语句时,前缀和后缀的效果是一样的对于“++”和“--”的使用要避免二义性12自增/自减计算过程例1:设x=5y=++x;/*先计算x=x+1,再执行y=x,结果x=5,y=6*/y=x++;/*先执行y=x,再计算x=x+1,结果y=5,x=6*/问题:如何理解A+++B?C规定:自左向右取尽可能多的符号组成运算符13自增/自减例2:设x=5y=x++*x++;/*先取x的值进行“*”运算,再进行两次x++。y=25,x=7*/y=++x*++x;/*先进行两次x自增
10、1,使x的值为7,再进行相乘运算。y=49,x=7*/14赋值表达式由赋值运算符“=”连接表达式(右侧)和变量(左侧)形式:变量名=表达式赋值运算符完成两类操作计算赋值例inta=2,floatb=5.2,c;c=a*b;赋值运算符具有右结合性例如:a=b=3*5;/*先计算3*5,后将15赋给b,再将b的值15赋给a*/15赋值表达式组合赋值表达式组合赋值运算符将一个变量和一个表达式连接起来的式子称为组合赋值表达式形式:变量名<组合赋值运算符>表达式例:x%=y/3;/*x=x%(y/3)*/a*=b+c/*a=a*(b
11、+c)*/注意:“a*=b+c”与“a=a*b+c”是不等价的提示“=”不是数学中的“等号”,它表示一个动作,右侧的值送与左侧的变量中(左侧只允许是变量,不能是表达式或其他)赋值运算符两侧的类型要求一致,否则要进行类型转换赋值运算符‘=’,相等运算符‘==’,和一般习惯有所不同16关系表达式关系运算符中
此文档下载收益归作者所有