fun(int x) {static int a=3;a+=x;return(a);}。。。。。。

2025-03-02 08:19:11
推荐回答(3个)
回答1:

a是静态变量。两次执行fun函数只定义一次。
第一次:
fun(k), 定义了a = 3, 然后a+=x; 这里x是k,所以a += k,即a = k + a = 2 + 3 = 5
第二次:
此时a已经定义过,跳过static int a=3;这个语句。
n = fun(m) = fun(1) = a + 1 = 6

够详细了吧

回答2:

先看main也就是主函数
把k=2代入fun(k)这个函数,return (5)
在运行fun(m)return(6)
最后是输出n=6,也就是printf这个语句

回答3:

注意以下语法:
static int a=3;
static int a 仅仅被初始化一次,并被初始化为3,此后所有对函数fun(int x)的调用都不会再次初始化 a 静态变量.
另外注意 static 在 c 和c++ 的所用域不同