#include<stdio.h>
int main()
{
int f(int a, int b);
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=0;
else c=-1;
return(c);
}
******************************

```c
#include<stdio.h>
int main()
{
int f(int a, int b);
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=0;
else c=-1;
return(c);
}
++i 是先自增后赋值,i++ 是先赋值后自增
i=1; a=i++; ==》 a=1
i=1; a=++i; ==》 a=2
这是一个undefined behavior(未定义的行为),不同编译器的结果可能不同。尽量不要在函数传参的时候使用++
你可以看看这篇文章 https://blog.csdn.net/a26013/article/details/121377828?utm_source=app&app_version=4.19.1&code=app_1562916241&uLinkId=usr1mkqgl919blen