强制类型转换与乘除法的先后顺序

有如下定义:int a=10,b,c,flag=0;double pi=3.14,s;
请问执行下面语句后,变量a,b,c,s 的值分别是什么?变量s 的数据类型
是什么?
b=a++;
c=++a;
s=flag?2*b*c:(int)pi/2*a;

a=12
b=10
c=12
s=12.0
s的数据类型是double,pi在强制类型转换后,变成了3,3/2=1(int运算),最后是s=1*12=12追问

为什么是double 呢还是不懂

追答

因为定义是:
double pi=3.14,s;

也就是pi和s是一个数据类型(两个变量之间用的是逗号,C语言的书中有详细说明),区别是:变量pi被赋值为3.14,而变量s未赋初值。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网