C语言程序设计运算符知识.pptVIP

  • 14
  • 0
  • 约1.96千字
  • 约 14页
  • 2020-02-06 发布于辽宁
  • 举报
* Version 1.0 * * Version 1.0 * 掌握C语言运算符的分类及优先级顺序 掌握各类数值型数据之间的混合运算 * 小时候妈妈教我们学运算总是从竖起的两个手指头开始。她会一边比划一边教你:1+1=2。看看这两个手指头,应知道运算本身要有对象(手指头)和带有意义的运算符(+)。计算机的运算原理也如此。 第一,计算机的运算对象是数据; 第二,程序设计语言提供的运算符。 C语言的运算符范围很宽,把除了控制语句和输入输出以处的几乎所有的基本操作都作为运算符处理,如将赋值符“=”作为赋值运算符,方括号“[ ]”作为下标运算符等。下面我们来学习几个知识…… * (1) 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除 (/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。 (2)关系运算符:用于比较运算。包括大于()、小于()、等于(==)、 大于等于(=)、小于等于(=)和不等于(!=)六种。 (3)逻辑运算符:用于逻辑运算。包括与()、或(||)、非(!)三种。 (4)位操作运算符:参与运算的量,按二进制位进行运算。包括位与()、位或(|)、位非(~)、位异或(^)、左移()、右移()六种。 (5)赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(=,|=,^=,=,=)三类共十一种。 (6)条件运算符:这是一个三元运算符,用于条件求值(?:)。 (7)逗号运算符:用于把若干表达式组合成一个表达式(,)。 (8)指针运算符:用于取内容(*)和取地址()二种运算。 (9)求字节数运算符:用于计算数据类型所占的字节数(sizeof)。 (10)特殊运算符:有括号(),下标[],成员(→,.)等几种。 * 小学有个四则运算口诀:“先算乘除,后算加减,有括号的话,就先算括号里。”这个口诀说明了运算有优先顺序之分。C语言的运算也是一样的,组成表达式的运算符优先顺序如下表所示。 优先级别为1最高,11最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。 运算符的结合性:C语言中各运算符的结合性分为两种,即从左向右结合性和从右向左结合性。例如算术运算符的结合性是从左向右。如有表达式x-y+z则先执行x-y运算,得出的结果再执行和z相加的运算。这种从左向右的结合方向就称为“左结合性”。而从右向左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,所以应先执行y=z再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。 * 表达式b=x+a%3*(x+y)/4的优先运算顺序如图所示。 * 变量的数据类型是可以转换的。转换的方法有两种,一种是自动转换,一种是强制转换。自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。 * 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。 转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。 所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。 char型和short型参与运算时,必须先转换成int型。 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。 图表示了类型自动转换的规则。 * void main() { float PI=3.14159; int s,r=5; s=r*r*PI; printf(s=%d\n,s); } 本例程序中,PI为实型;s,r为整型。在执行s=r*r*PI语句时,r和PI都转换成double型计算,结果也为double型。但由于s为整型,故赋值结果仍为整型,舍去了小数部分。 返回 * 可以利用强制类型转换运算符将一个表达式转换成所需类型。其一般格式为: (类型说明符)(表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。 例如: (float) a 把a转换为实型 (int)(x+y) 把x+y的结果转换为整型 * ? * Version 1.0 * *

文档评论(0)

1亿VIP精品文档

相关文档