#include main() { int x=1,y=3; x=9-(--y)-(--y); printf("%d",x); } #include main()#includemain(){ int x=1,y=3; x=y*4.8/2; printf("%d",x);}谁能帮我解释下这两个程序的运行过程?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 20:17:56

#include main() { int x=1,y=3; x=9-(--y)-(--y); printf("%d",x); } #include main()#includemain(){ int x=1,y=3; x=y*4.8/2; printf("%d",x);}谁能帮我解释下这两个程序的运行过程?
#include main() { int x=1,y=3; x=9-(--y)-(--y); printf("%d",x); } #include main()
#include
main()
{
int x=1,y=3;
x=y*4.8/2;
printf("%d",x);
}
谁能帮我解释下这两个程序的运行过程?

#include main() { int x=1,y=3; x=9-(--y)-(--y); printf("%d",x); } #include main()#includemain(){ int x=1,y=3; x=y*4.8/2; printf("%d",x);}谁能帮我解释下这两个程序的运行过程?
第一个其实就是先进行--y运算得到y=2,然后再进行--y得到y=-1,x=9-(1)-(1),因为你把--y看作等于a==--y,对自减做两次就是了.a只是一个变量,只可能唯一个值,不可能既为2,又为1.
第二个其实是数据类型的转换,先计算y*4.8得到的为单精度也就是14.4,再进行除2,得到7.2,由于x的类型为整型,故单精度的7.2要转换成整型的,也就是7了