分析下列c程序,写出程序的运行结果
main(){intx,y;x=10;y=(x++)+x;printf("%d\n",y);x=9;printf("%d,%d\n",++x,x);x=10;y=x--+...
main()
{ int x,y;
x=10;y=(x++)+x; printf("%d\n",y);
x=9;printf("%d,%d\n",++x,x);
x=10;y=x--+x; printf("%d\n",y);
x=6;printf("%d,%d",x++,x);
} 展开
{ int x,y;
x=10;y=(x++)+x; printf("%d\n",y);
x=9;printf("%d,%d\n",++x,x);
x=10;y=x--+x; printf("%d\n",y);
x=6;printf("%d,%d",x++,x);
} 展开
1个回答
展开全部
第一句, x=10;y=(x++)+x; printf("%d\n",y);,里面是先执行x+x,然后括号里的x再自加1,所以,结果是20.
第二句,x=9;printf("%d,%d\n",++x,x);,++X是先执行X的自加,再输出,所以前面那个是10,也许你会问,为什么后面那个是9呢,因为它没有再给X赋值了,也就是没有说明x=++x,所以,X还是9.
第三句, x=10;y=x--+x; printf("%d\n",y);和第一句是同样原理的。
第四句, x=6;printf("%d,%d",x++,x);,相当于:x=x++,这样的话,X就先赋值,然后自身再加一,所以前面是6,后面也是6。
总的结果是:20
10,9
20
6,6
第二句,x=9;printf("%d,%d\n",++x,x);,++X是先执行X的自加,再输出,所以前面那个是10,也许你会问,为什么后面那个是9呢,因为它没有再给X赋值了,也就是没有说明x=++x,所以,X还是9.
第三句, x=10;y=x--+x; printf("%d\n",y);和第一句是同样原理的。
第四句, x=6;printf("%d,%d",x++,x);,相当于:x=x++,这样的话,X就先赋值,然后自身再加一,所以前面是6,后面也是6。
总的结果是:20
10,9
20
6,6
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询