在函数调用的逗号运算顺序和等式中是不同的.
#include <stdio.h>
#include <conio.h>
int function(int temp1,int temp2)
{
printf("temp1=%d\n",temp1);
printf("temp2=%d" ,temp2);
return 1;
}
int main(void)
{
int i=1;
clrscr();
function(i++,i++);
getch();
}
结果是:
temp1=2
temp2=1
证明:function(i++,i++);调用是从右到左,即:function(2,1);
还有一个也可以证明这一点:
#include <stdio.h>
#include <conio.h>
int main(void)
{
int i=1;
clrscr();
printf("%d , %d ",i++,i++);
getch();
}
结果:
2 , 1
但是在等式中是从左到右:
#include <stdio.h>
#include <conio.h>
int main(void)
{
int i=1;
clrscr();
i=(i++,i+10);
printf("%d",i);
getch();
}
结果:
12
i=(i++,i+10);的执行顺序是:从左到右.