作业帮 > 综合 > 作业

以下程序的输出结果是 main() { int a=21,b=11; printf("%d\n",- -a+b,- -b

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/02 18:37:52
以下程序的输出结果是 main() { int a=21,b=11; printf("%d\n",- -a+b,- -b+a); }
输出结果:30
原理:
1.C语言的运行顺序大多都是自右向左(但是少数C语言编译软件的输出结果为31,它的运行顺序是自左向右,这里以VC++ 6.0为例说明输出30的原因).
2.先运行--b+a,根据运算顺序知道相当于(--b)+a,b先自减,即b=10,此表达式--b+a的值为31.
3.然后运行- -a+b,相当于(--a)+b,a先自减,即a=20,此表达式- -a+b的值20+10=30.
4.printf("%d\n",- -a+b,- -b+a); 输出第一个表达式的值,(printf函数输出顺序是自左向右).