考慮以下代碼:如何在函數調用中評估參數?
void res(int a,int n)
{
printf("%d %d, ",a,n);
}
void main(void)
{
int i;
for(i=0;i<5;i++)
res(i++,i);
//prints 0 1, 2 3, 4 5
for(i=0;i<5;i++)
res(i,i++);
//prints 1 0, 3 2, 5 4
}
望着輸出,似乎參數不從右到左每一次評估。到底發生了什麼?