首页 > 试题广场 >

下列程序的输出结果是

[单选题]
下列程序的输出结果是
#include <iostream>
using namespace std;
void f() {
    static int i = 15;
    i++;
    cout << "i=" << i << endl;
}
int main(void){
    for(int k = 0;k < 2;k++) 
        f();
}
  • i=16     i=15
  • i=15     i=17
  • i=16     i=17
  • i=15     i=16
  • i=15     i=18
推荐
C
static 修饰的变量只初始化一次, 当下一次执行到这一条语句的时候,直接跳过
编辑于 2016-01-03 18:50:28 回复(3)
这句并不是智能到第二次运行不重新初始化,那句就不是运行阶段执行的!
发表于 2016-03-28 18:07:04 回复(0)
静态变量只在编译时执行一次初始化。
发表于 2017-05-24 00:00:04 回复(1)
static存放在.data段,函数经调用后这块内存不会被销毁,所以i的值逐渐增大
发表于 2016-03-01 21:59:34 回复(0)
static局部变量只初始化一次
发表于 2016-08-04 10:08:59 回复(0)
静态变量的初始值,在编译时就设定好了,并且运行时不会改变。所以,调用函数不会初始化  i  .
发表于 2016-03-31 15:00:53 回复(0)
static是静态变量,在函数体内声明一次后不再声明,一直存在。不会随着某一次函数调用结束而释放,而是等到程序结束才释放
发表于 2020-02-20 17:22:28 回复(0)
这里考察对static型变量的理解,static变量只在第一次初始化才有效,其他都不起作用,另外在函数调用结束后,仍然保存static变量的值
所以第二次调用函数时,i 的值是上次的16,然后再自增得到17。
发表于 2022-06-10 17:28:28 回复(0)
static修饰的变量只初始化一次!
发表于 2017-05-14 00:46:07 回复(0)
请问如果没有static就应该是16 16对吗?
发表于 2023-02-18 23:18:12 回复(0)
C
static 修饰的变量只初始化一次, 当下一次执行到这一条语句的时候,直接跳过
发表于 2021-10-17 11:23:41 回复(0)
本程序中静态变量只初始化一次
发表于 2021-01-22 09:31:57 回复(0)
static修饰局部变量,可以简单的理解成可以记忆性,可以记住变量上一次的值
发表于 2020-03-23 10:11:14 回复(0)
静态局部变量会保留上一次调用后的值,而不会每次重新赋值
发表于 2020-02-28 20:25:50 回复(0)
╮头像
i是全局变量,所以每次改变后不会被内存清成原来的数
发表于 2017-04-09 14:00:11 回复(0)
静态局部变量有以下特点:
该变量在全局数据区分配内存;
静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的 函数调用 不再进行初始化
静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0
它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;
发表于 2016-08-19 22:55:21 回复(0)
static is class variable,all the object of the class using the variable,any object of the class can change the variable.it not only can be using by the object but also can be using by the class.
咳咳~我给翻译一下~~
static是类变量,所有该类的对象都使用该变量,任何该类的对象都可以改变该变量的值。该变量not only在类中使用but also在 对象中使用
发表于 2016-01-03 09:58:38 回复(0)