c语言乘除运算符的结合方向3,清华谭浩强C语言课件教学PPT第3章_数据类型运算符与表达式.ppt...

清华谭浩强C语言课件教学PPT第3章_数据类型运算符与表达式

3.8 算术运算符和算术表达式 3.8.2 算术运算符和算术表达式 (1)基本的算术运算符: + (加法运算符,或正值运算符,如:3+5、+3) - (减法运算符,或负值运算符,如:5-2、-3) * (乘法运算符,如:3*5) / (除法运算符,如:5/3) % (模运算符,或称求余运算符,%两侧均应为整型数据,如:7%4的值为3)。 3.8 算术运算符和算术表达式 (2) 算术表达式和运算符的优先级与结合性基本的算术运算符: 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C算术表达式。运算对象包括常量、变量、函数等。 例如: a*b/c-1.5+′a′ 是一个合法的表达式。 C语言规定了运算符的优先级和结合性。 在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。 C规定了各种运算符的结合方向(结合性) 算术运算符的结合方向为“自左至右”,即先左后右 。 3.8 算术运算符和算术表达式 强制转换 强制转换是通过类型转换运算符来实现。 一般形式:(类型说明符)表达式 功能:把表达式的结果强制转换为类型说明符所表示的类型。 (int)a 将a的结果强制转换为整型量。 (int)(x+y) 将x+y的结果强制转换为整型量。 (float)a+b 将a的内容强制转换为浮点数,再与b相加 无论隐式转换,强制转换都是临时转换,不改变数据本身的类型和值。 3.8 算术运算符和算术表达式 (4) 自增、自减运算符 作用是使变量的值增1或减1 如: ++i,--i(在使用i之前,先使i的值加 (减)1) i++,i--(在使用i之后,使i的值加( 减)1) 3.8 算术运算符和算术表达式 i++与++i的区别: ++i是先执行i=i+1后,再使用i的值; i++是先使用i的值后,再执行i=i+1。 例如: ①j=++i;    i的值先变成4, 再赋给j,j的值均为4 ②j=i++; 先将 i的值3赋给j,j的值为3,然后i变为4 3.8 算术运算符和算术表达式 注意: (1)自增运算符(++),自减运算符(--),只能用于变量,而不能用于常量或表达式, (2)++和--的结合方向是“自右至左”。 自增(减)运算符常用于循环语句中使循环变量 自动加1。也用于指针变量,使指针指向下一个地址 3.8 算术运算符和算术表达式 (5) 有关表达式使用中的问题说明 ①ANSI C并没有具体规定表达式中的子表达式的求值顺序,允许各编译系统自己安排。 例如:对表达式 a = f1( )+f2( ) 并不是所有的编译系统都先调用f1( ), 然后 调用f2( )。在有的情况下结果可能不同。有时会出 现一些令人容易搞混的问题,因此务必要小心谨慎。 3.8 算术运算符和算术表达式 ②C语言中有的运算符为一个字符,有的运算符由 两个字符组成 ,为避免误解,最好采取大家都能理 解的写法。 例如:不要写成i+++j的形式,而应写成 (i++)+j的形式 3.8 算术运算符和算术表达式 ③在调用函数时,实参数的求值顺序,C标准并无统 一规定。 例如:i的初值为3,如果有下面的函数调用: printf(″%d,%d″,i,i++) 在有的系统中,从左至右求值,输出“3,3”。在多数系统中对函数参数的求值顺序是自右而左,printf函数输出的是“4,3”。以上这种写法不宜提倡, 最好改写成 j = i++; printf("%d, %d", j,i) 不要写出别人看不懂的也 不知道系统会怎样执行程 序 3.9 赋值运算符和 赋值表达式 符号" = "为赋值运算符。 2. 整型数据赋给实型变量,数值不变,但按实数形式存放. 1. 将实型数据(无论单,双精度)赋给整型变量时,舍弃小数. 赋值时,两边类型若不一致,则按以下规则转换: 4. 将int?long int, 进行符号扩展。 即: 符号扩展, 低16位?long 的低16位。 5. long int ? int 则高16位截断。 3. 字符型数据赋给整型变量时: (2)字符?带符号整型变量,则字符高位扩展。 (1)字符?无符号整型变量,则存入低8位,高8位补零。 6. 将unsigned int 型?long int高位补0。 原值传送,但数据大小不能超值。 如: unsigned in

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值