自增算法

来源:百度知道 编辑:UC知道 时间:2024/05/28 19:31:31
++a+b,++b+a这两个计算具体是怎么计算的啊...
#include<stdio.h>
void main
{int a=5,b=7;
printf("%d,%d",++a+b,++b+a);
}
输出结果为:14,13
是怎么回事啊?

++的优先级高于普通加减


++a+b=(++a)+b,
++b+a=(++b)+a.

printf函数是从右向左编译的,故编译时先计算++b+a的值,再计算++a+b的值,但是输出时还是按照从左到右的顺序输出。

函数压栈顺序是从右到左。
所以先++b+a, 再++a+b