作业帮 > 综合 > 作业

c语言:float a=1.2,b=1.8;a-=b;printf("a=%f,b=%f\n",a,b);a+=b++=

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 16:08:37
c语言:float a=1.2,b=1.8;a-=b;printf("a=%f,b=%f\n",a,b);a+=b++==0;printf("a=%f,b=%f\n",a,b);
float a=1.2,b=1.8;
a-=b;
上面这条命令可以看做a=a-b
得出a=1.2-1.8=-0.6,b值不变
printf("a=%f,b=%f\n",a,b);
输出就不多说了
a+=b++==0;
上面这条就很蛋疼了——没事这样玩有意义么……
首先是运算优先级最高的自加命令.b++表示这条语句用过b后b自加1.
然后是优先级第二的==判断语句.这个时候b等于1.8,执行这条判断后,得出结论,b不等于0.这个时候就会返回值0(代表否的意思)
然后就是优先级在这里面最低的a+=开始执行.+=参照前面的-=.这里意思是a=a+(刚才的判断结果)
也就是说,刚才判断结果返回了0,a这个时候加上0然后赋给a.上面这一大段总结下来就是:
这条语句结果是a值不变,b值自加1.
不过注意了,若是b当时等于0,那么判断后会返回值1,那么a就会加1.
printf("a=%f,b=%f\n",a,b);
输出.不解释.
结果的话,输出应该是
a=-0.600……,b=1.800……
a=-0.600……,b=2.800……
省略号是懒得数后面会有多少个0.