自增算法

发布时间:2024-05-09 17:09 发布:上海旅游网

问题描述:

++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

热点新闻