大一c语言做题不会写了 是关于static调用的
#include<stdio.h>
int f(int n)
{
static int k=1;
k++;
return 2*n+k;
}
void main()
{
printf("%d\n",f(4));
printf("%d\n",f(f(4)));
}
题目问第一二行会出现什么结果 答案是 第一行10 第二行26
第一行我知道是10 但是第二行不懂 请问各位指点下。
因为输出第一行的时候k=2了,执行第二行,先执行里面的,k=3,返回11,在执行一次k=4了,返回就是11*2+4为26
static可以参考
https://blog.csdn.net/guotianqing/article/details/79828100
你把k放在函数 f上面,当成个全局变量理解就没问题了