首页 > 试题广场 >

以下程序的执行结果是:#include iostream.

[单选题]
以下程序的执行结果是:
#include <iostream>
using namespace std;
int i = 0;
int function(int n) {
    static int a = 2;
    a++;
    return a + n;
}
void main() {
    int k = 5;
    {
        int i = 2;
        k += function(i);
    }
    k += function(i);
    cout << k;
}
  • 13
  • 14
  • 15
  • 16
注意第二个i是全局变量0,并不是局部变量2.
发表于 2019-07-18 17:34:08 回复(1)

  static int a = 2;//这句代码只会执行一遍
发表于 2019-10-18 14:37:34 回复(1)
<p>Static设置的变量是被共享的,第二次进入到func调用时,a已经被修改成了3,再执行一次a++,变成了4,func函数最后返回4+0,所以main中得到最后的值为10➕4=14</p>
发表于 2020-08-05 22:39:25 回复(2)
注意静态变量赋值操作只进行一次!
发表于 2021-09-02 18:22:14 回复(0)
c++中static修饰的静态局部变量只执行初始化一次,并且延长局部变量的生命周期,直到程序运行结束之后才释放
发表于 2022-07-16 15:07:07 回复(0)
这里要注意static静态成员变量的赋值只会执行一次
发表于 2021-08-25 19:59:21 回复(0)
第二次执行a变成了4
发表于 2021-04-22 19:39:52 回复(0)
#include <iostream>
using namespace std;
int i = 0;
int function1(int n)
{
 static int a = 2;
 a++;
 cout<<a<<" "<<n<<endl;
 return a + n;
}
int main()
{
 int k = 5;
 {
 int i = 2;
 k += function1(i);
 }
 k += function1(i);
 cout << k;
 return 0;
}
//3 2
//4 0
//14
发表于 2021-03-08 11:36:53 回复(0)
两个点:一个a是静态变量,第二次a为3;一个是i是全局变量,第二次i为0
编辑于 2024-03-09 17:42:04 回复(0)
作用域问题
发表于 2023-10-21 15:12:08 回复(0)
题目中为什么有个花括号
发表于 2022-07-21 15:11:27 回复(0)
静态成员变量的复制只会执行一次
发表于 2022-03-24 00:02:32 回复(0)
注意静态变量只初始化一次!!!
发表于 2022-02-28 19:13:37 回复(0)
static是静态局部变量,第二次执行是3

发表于 2021-04-03 21:38:17 回复(0)
<p>第二个i是全局变量,i =2</p>
发表于 2020-10-25 17:54:37 回复(0)