我有一些C代碼:函數參數中的預增和後增的操作順序?
main()
{
int a=1;
void xyz(int,int);
xyz(++a,a++); //which Unary Operator is executed first, ++a or a++?
printf("%d",a);
}
void xyz(int x,int y)
{
printf("\n%d %d",x,y);
}
功能xyz
在,++a
和a++
傳遞兩個參數。有人可以解釋操作的順序來解釋結果嗎?
上面的代碼根據使用的編譯器打印「3 13」或「2 23」。
如果您在示例程序中使用了不同的變量,它可能會更清晰。另外,你應該在你正在打印的值之後加上「\ n」*,而不是之前。這將打印「2 23」 – DevinB 2010-06-07 13:07:50
你應該嘗試一些更清楚。這個語法對於一個人來說很奇怪。簡化代碼,不要試圖編寫複雜的東西。 – INS 2010-06-07 14:51:58