C++入门题 关于static的调用

大一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上面,当成个全局变量理解就没问题了