我有一些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