新手-函数调用中(两个形参),实参给形参传递的顺序是什么
#include <stdio.h>int func(int a,int b)
{
printf("%d,%d\n",a,b);
int c;
c=a+b;
return c;
}
int main(void)
{
int x=6,r;
r=func(x++,x++);//7,6 如此看:执行顺序为从右往左
printf("%d\n",x);//8
printf("%d\n\n",r);//13
x = 6;
r=func(x++,++x);//7,8 如此看,好像是从左往右,但是为什么第一个参数是7?
printf("%d\n",x);//8
printf("%d\n\n",r);//15
x=6;
r=func(++x,++x);//8,8 如此看,搞不懂。。。
printf("%d\n",x);//8
printf("%d\n\n",r);//16
x=6;
r=func(++x,x++);//8,6 如此看,执行顺序为从右往左。
printf("%d\n",x);//8
printf("%d\n\n",r);//14
}
ps.注释后面的是数字是输出。
ps..这几个递增的实参传给形参后变得好奇怪。
ps...怎么结帖?感谢!先去上自习了
求;
[ 本帖最后由 NET_雷 于 2013-4-18 22:44 编辑 ]