#include "stdio.h"
fun(a)
int a;
{int b=0,c=3;
a=c++;b++;
return a;
}
main()
{int a=2,i,k;
for(i=0;i<2;i++)
k=fun(a++);
printf("%d\n",k);
}
#include "stdio.h"
fun(a)
int a;
{int b=0,c=3;
a=c++;b++;
return a;
}
main()
{int a=2,i,k;
for(i=0;i<2;i++)
k=fun(a++);
printf("%d\n",k);
}
-main
-for i=0
-k=fun(2)
-a=3 (a++)
-i=1
-k=fun(3)
-a=4 (a++)
-print k ( 结果是3)
fun 无论传入参数是什么,都返回3
-fun(2)
-a=3
-c=4 (c++)
-b=1 (b++)
- return 3
-fun(3)
-a=3
-c=4
-b=1
-return 3
#include "stdio.h"
int a;
int fun(a)
{
int b=0,c=3;
a=c++;b++;
return a;
}
main()
{int a=2,i,k;
for(i=0;i<2;i++)
k=fun(a++);
printf("%d\n",k);
}
全局变量a的定义有问题
结果是3
因为c=3;
a=c++;
返回a的值,不管实参是多少,在这a的值都被赋值为3了。