算术运算符、表达式赋值运算与逗号运算

算术运算符、表达式赋值运算与逗号运算

ID:37445660

大小:429.81 KB

页数:22页

时间:2019-05-12

算术运算符、表达式赋值运算与逗号运算_第1页
算术运算符、表达式赋值运算与逗号运算_第2页
算术运算符、表达式赋值运算与逗号运算_第3页
算术运算符、表达式赋值运算与逗号运算_第4页
算术运算符、表达式赋值运算与逗号运算_第5页
资源描述:

《算术运算符、表达式赋值运算与逗号运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4讲算术运算符、表达式赋值运算与逗号运算整型变量占字节数随机器不同而不同,一般占一个机器字short≤int≤long可用sizeof(类型标识符)测量实型变量float:占4字节,提供7位有效数字double:占8字节,提供15~16位有效数字字符型变量字符变量存放字符ASCII码char与int数据间可进行算术运算复习2.6算术运算符1.基本算术运算符有:+、―、*、/、%注意事项两个整型数据相除的结果只能为整型数值,如7/2的结果为3“+”或“-”用作单目运算符时只能有一个运算量,如x=-5,则+x的值还是-5,而-x的值为+5。求余运算只能在两个整型数据之间进行,如9%

2、5的值为4,而9.5%3为非法的运算当运算量为负数时,所得结果的符号未作明确的规定。TURBOC系统规定余数的符号与被除数相同。2.算术表达式用算术运算符和圆括号将函数和运算对象(如常量、变量等)按一定的规则连接起来就可以构成一个算术表达式,如:(a+b)*c+5.0、x*y+2*sin(z)等都是算术表达式表达式都有一个值,即运算结果。应该注意表达式中运算符的优先级和结合性优先级用于决定运算中的运算顺序,即有多个运算符出现时,哪一个先计算,哪一个后计算。结合性则决定同一优先级的运算符之间的运算顺序,即是先左后右还是先右后左。P264附录C运算符名称优先级结合性()括号15(最高

3、)自左至右[]下标->指向结构体成员.结构体成员!逻辑非14自右至左~按位取反++增1――减1&取地址*取内容+、-正、负号(类型)强制类型转换sizeof计算类型长度*乘13自左至右/除%求余+加12自左至右-减<<按位左移11自左至右>>按位右移>大于10自左至右<小于>=大于或等于<=小于或等于==等于9自左至右!=不等于&按位与8自左至右∧按位异或7自左至右│按位或6自左至右&&逻辑与5自左至右‖逻辑或4自左至右?:条件运算3自右至左=赋值2自右至左+=-=*=/=复合运算%=&=∧=│=>>=<<=,逗号1(最低)自左至右关于结合性所谓结合性是指,当一个操作数两侧的运算

4、符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。3.算术运算中的类型转换在C语言中要求参加运算的两个运算量是同一数据类型,而运算结果也是该数据类型。对数据类型不一致的两个运算量,系统会进行数据类型转换,将其中的一个低级别类型的数据向另一个高级别类型的数据转换(按空间大小和数值范围),然后才进行相应的算术运算,运算的结果为其中高级别类型的数据。高doublefloatlong(unsignedlong)低int(unsignedint)shortint、char图2.4算术运算中的类型转换隐式转换什么情况下发生运算转换------不同类型数据混合运算

5、时赋值转换------把一个值赋给与其类型不同的变量时输出转换------输出时转换成指定的输出格式函数调用转换------实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+‘a’+i*

6、f-d/l例inti;floatf;doubled;longl;3.强制类型转换运算符当自动类型转换不能达到目的时,可以使用强制类型转换运算符。强制类型转换运算符就是用一对括号括起来的类型名标识符,其一般格式为:(类型名标识符)(表达式)例如:假设x为float类型,则表达式“x%3”是不合法的,因为%运算符要求其两侧的数据都必须是整型数据。可以使用表达式“(int)x%3”达到求余数的目的,即先将实型变量x强制转换为整型值,然后再进行取余运算。显式转换(强制转换)一般形式:(类型名)(表达式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6说明:

7、强制转换得到所需类型的中间变量,原变量类型不变例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生Ch2_007.cCh2_008.c2.7赋值运算符与赋值表达式变量的值在程序的运行过程中能够发生变化主要是通过对变量进行赋值来完成的。如果在程序中没有赋值操作,则变量的值也就不会发生变化。1.赋值运算符(=)的作用是把一个数据或表达式的值

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

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

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