假设我有以下代码:
#include <stdio.h>
main()
{
int a,b,c;
b=1;
c=2;
printf("%dn",10,b=20,b=30,c=50,c=100);
printf("%dn",b);
printf("%dn",c);
}
o/p-10,20,50b的值是怎么变成20而不是30的。。c也是一样?
参数表达式的求值顺序和它们在堆栈上的推送是不同的。
C中未指定参数表达式的求值顺序。因此,可能首先求值b=20,然后求值b=30,反之亦然。
在堆栈中放置参数的顺序如下:最右边的参数放在第一位。