main(){int i=2,p;p=f(i,++i);printf("%d",p);}int f(int a,int b){int c ;if(a>b) c=1;else if(a==b) c=0else c =-1reture c;}初学者C,对调用函数不是 很了解,请大家帮忙解释解释,说明说明下。谢谢就对上面的一个例子进行解释解释谢谢了~

热心网友

#include int f(int, int);void main(){int i=2,p;p=f(++i,i);printf("%d",p);}int f(int a,int b){int c ;if(ab) c=1;else if(a==b) c=0;else c =-1;return c;}函数调用时,参数从右向传左传递。调用函数f()时,i自增, 将值3传给b;然后又将自增后的值3传给a. 所以程序运行的结果是0.如果改为p=f(++i, i)。那么,i将值2传给b;然后自增,将值3传给a.程序运行结果是1.

热心网友

主函数中p=f(i,++i);实现函数调用。此时,把2,2传给子函数,之后i再加一,因为是++i,不是i++。子函数中a=2,b=2符合a==b,所以子函数中c=0,将c得知返回到主函数,主函数中p=0,输出为零。

热心网友

int f(int a,int b){int c ;if(ab) c=1;else if(a==b) c=0else c =-1reture c;}main(){int i=2,p;p=f(i,++i);printf("%d",p);}我喜欢把字函数写在 main前面