资源描述
本节内容:,不同数据类型之间的转换运算符,东方一诺技术培训研发中心,2.5不同类型数据间的转换隐式转换运算转换规则:不同类型数据运算时先自动转换成同一类型,东方一诺技术培训研发中心,东方一诺技术培训研发中心,显式转换(强制转换)一般形式:(类型名)(表达式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6说明:强制转换得到所需类型的中间变量,原变量类型不变,例main()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3,精度损失问题,东方一诺技术培训研发中心,赋值运算符和表达式简单赋值运算符符号:=格式:变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量,复合赋值运算符种类:+=-=*=/=%=c=d+2;,东方一诺技术培训研发中心,说明:结合方向:自右向左优先级:2左侧必须是变量,不能是常量或表达式,赋值表达式的值与最左边变量值相等,且可嵌套,赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,例3=x-2*y;a+b=3;,例floatf;inti;i=10;f=i;则f=10.0,例inti;i=2.56;/结果i=2;,例:a=b=c=5a=(b=10)/(c=2),/表达式值为5,a,b,c值为5,/表达式值5,a=5,b=10,c=2,东方一诺技术培训研发中心,说明:结合方向:自右向左优先级:2左侧必须是变量,不能是常量或表达式,赋值表达式的值与最左边变量值相等,且可嵌套,赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,例:a=12;a+=a-=a*a,例:inta=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(先执行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)+-结合方向:自右向左优先级:-+-*/%-+-(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*4a=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);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*/#includemain()intx,y=7;floatz=4;x=(y=y+6,y/z);printf(x=%dn,x);,运行结果:x=3,东方一诺技术培训研发中心,本章总结,重点:标识符的表示形式常量的正确表示形式变量的定义强制类型转换运算符的应用难点:不同进制间的转换+、-的应用,东方一诺技术培训研发中心,TheEnd,东方一诺技术培训研发中心,
展开阅读全文