#include <stdio.h>
f(int a)
{
static int tc=3;
int tb=0;
a=tc++,tb++;
printf(“%d,%d\n”,tb,tc)
return a;
}
main()
{
int a=15,i,k;
for(i=0;i<2;i++)
k=f(++a);
printf(“%d\n”,k);
}
答案是1,4
1,5
4
#include <stdio.h>
f(int a)
{
static int tc=3;
int tb=0;
a=tc++,tb++;
printf(“%d,%d\n”,tb,tc)
return a;
}
main()
{
int a=15,i,k;
for(i=0;i<2;i++)
k=f(++a);
printf(“%d\n”,k);
}
答案是1,4
1,5
4
这里你要弄清楚几个知识点
1、i++ 与 ++i
2、static 变量
i++与++i都是自增,他们区别是:参与计算时i++会用原来的值参与计算,++i则是用自增后的值参与计算
所以f函数里面 打印的值 tb,tc都是自增之后的值,tc是static变量,它的值不会重新初始化
所以第一次进f函数的时候tb=0 tc=3,自增完之后tb=1 tc=4 a=3
第二次进入f函数的时候tb=0 tc=4, 自增完之后tb=1 tc=5 a=4