写了如下的c语言代码:
#include<stdio.h>
void f(int a,int b,int c)
{
printf("%d %d %d",a,b,c);
}
int main()
{
int x=0;
f(x=1,x=2,x=3);
return 0;
}
运行后输出 1 1 1。我知道传参时进栈顺序是从右至左。但是,为什么后两个参数明明已经算出结果了,却还是被x=1覆盖,是不是算出结果3和2后没有直接进栈?对这其中的细节有疑问,希望各位不吝赐教,谢谢!