#include<stdio.h>
int main(void)
{
int a = 10, b = 20, c = 30;
printf("\n %d..%d..%d \n", a+b+c, (b = b*2), (c = c*2));
return 0;
}
上面的输出是:110..40..60
分析:
因为函数压栈的原因,函数在参数压栈的时候,是从右至左的,所以会先计算c=c*2,接着b=b*2,然后a+b+c。
#include<stdio.h>
int main(void)
{
int a = 10, b = 20, c = 30;
printf("\n %d..%d..%d \n", a+b+c, (b = b*2), (c = c*2));
return 0;
}
上面的输出是:110..40..60
分析:
因为函数压栈的原因,函数在参数压栈的时候,是从右至左的,所以会先计算c=c*2,接着b=b*2,然后a+b+c。