兴平市的土地资源:定义:int t1;double t2;,执行语句:t1=(t2=1.9,t2+5,t2++);后t1的值

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 12:21:43
请说明步骤 谢谢 (另外C语言中 1/2一定等于0 吗 )

逗号表达式是顺序求值运算的,从第一个开始,到最后 一个,结果为最一个的值。所以T1的值是1。首先,括号内第一个语句,T2=1.9,然后T2+5,但T2值不变,之后T2++,是先赋值再自加,即先将T2=1.9赋给T1。T1为整型,所以T1=1。

1 / 2 就是等于 0

(double)1 / 2 等于 0.5

t1 = (t2 = 1.9, t2 + 5, t2++);

t1 = ((t2 = 1.9, t2 + 5), t2++);

先执行 t2 = 1.9, t2 + 5 这个表达式,先执行左侧,t2 的值为 1.9,表达式的值为 t2 + 5,即 6.9,原式变为

t1 = (6.9, t2++);

此逗号表达式的值为右侧的值,即 t2++ 的值,++ 是后缀计算,先不参与这里计算,所以值为 1.9。原式变为

t1 = 1.9

最后 t1 值为 1。