《东方一诺计算机二级C语言第2章3类型转换和运算符.ppt》由会员分享,可在线阅读,更多相关《东方一诺计算机二级C语言第2章3类型转换和运算符.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本节内容:不同数据类型之间的转换 运算符东方一诺技术培训研发中心 东方一诺技术培训研发中心 2.5 不同类型数据间的转换隐式转换 运算转换规则:不同类型数据运算时先自动转换成同一类型东方一诺技术培训研发中心 东方一诺技术培训研发中心double floatlongunsignedint char,short低高说明:必定的转换运算对象类型不同时转换例 char ch;int i;float f;double d;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledouble东方一诺技术培训研发中心 东方一诺技术培训研发中心显式转换(强制转换)一
2、般形式:(类型名)(表达式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变 例 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生东方一诺技术培训研发中心 东方一诺技术培训研发中心赋值运算符和表达式 简单赋值运算符符号:=格式:变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符种类:+=-=*=/=%=&=|=含义:exp1 op=exp
3、2 exp1=exp1 op exp2a+=3 a=a+3x*=y+8 x=x*(y+8)x%=3 x=x%3例 a=3;c=d+2;东方一诺技术培训研发中心 东方一诺技术培训研发中心 说明:结合方向:自右向左 优先级:2左侧必须是变量,不能是常量或表达式赋值表达式的值与最左边变量值相等,且可嵌套赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例 3=x-2*y;a+b=3;例 float f;int i;i=10;f=i;则 f=10.0例 int i;i=2.56;/结果i=2;例:a=b=c=5 a=(b=10)/(c=2)/表达式值为5,a,b,c值为5/表达式值5,a=5
4、,b=10,c=2东方一诺技术培训研发中心 东方一诺技术培训研发中心说明:结合方向:自右向左优先级:2左侧必须是变量,不能是常量或表达式赋值表达式的值与最左边变量值相等,且可嵌套赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例:a=12;a+=a-=a*a例:int a=2;a%=4-1;a+=a*=a-=a*=3;/a=-264 等价于a=a+(a=a-(a*a)/a=0 等价于a=a+(a=a*(a=a-(a=a*3)/a=a%(4-1)东方一诺技术培训研发中心 东方一诺技术培训研发中心 自增、自减运算符+-作用:使变量值加1或减1,本身是赋值运算种类:前置+i,-i(先执行
5、i+1或i-1,再使用i值)后置 i+,i-(先使用i值,再执行i+1或i-1)例 j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;/k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=4东方一诺技术培训研发中心 东方一诺技术培训研发中心自增、自减运算符+-作用:使变量值加1或减1种类:前置+i,-i(先执行i+1或i-1,再使用i值)后置 i+,i-(先使用i值,再执行i+1或i-1)说明:+-不能用于常量和表达式,如5+,(a+b)+-
6、结合方向:自右向左优先级:-+-*/%-+-(14)(13)(12)例-i+-(i+)i=3;printf(“%d”,-i+);/-3 例-i+i=3;printf(“%d”,-i+);东方一诺技术培训研发中心 东方一诺技术培训研发中心逗号运算符和表达式“,”是C语言中的一种特殊运算符 用逗号将表达式连接起来的式子成为逗号表达式 形式:表达式1,表达式2,表达式n 结合性:从左向右 优先级:1 逗号表达式的值:等于表达式n 的值例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3)x=a=3,6*a例 a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c
7、);printf(“%d,%d,%d”,(a,b,c),b,c);/a=15,表达式值60/a=15,表达式值20/赋值表达式,表达式值18,x=18/逗号表达式,表达式值18,x=3/1,2,3/3,2,3东方一诺技术培训研发中心 东方一诺技术培训研发中心逗号运算符和表达式形式:表达式1,表达式2,表达式n结合性:从左右优先级:1逗号表达式的值:等于表达式n 的值例:/*ch2_6.c*/#include main()int x,y=7;float z=4;x=(y=y+6,y/z);printf(x=%dn,x);运行结果:x=3东方一诺技术培训研发中心 东方一诺技术培训研发中心本章总结重点:u 标识符的表示形式u 常量的正确表示形式u 变量的定义u 强制类型转换u 运算符的应用 难点:u 不同进制间的转换u+、-的应用东方一诺技术培训研发中心 东方一诺技术培训研发中心东方一诺技术培训研发中心 东方一诺技术培训研发中心