为了账号安全,请及时绑定邮箱和手机立即绑定

第三题求助

第三题求助

C
慕斯卡0112955 2017-09-13 20:56:58
查看完整描述

3 回答

?
托马斯奎

TA贡献28条经验 获得超15个赞

选C :26  ,因为在incre函数中,x被定义为static,就是当incre函数调用结束之后,x的值依然在内存中保存,所以第一次调用incre函数之后,x的值是2,并输出,第二次调用incre函数时,x的值是2,计算之后是6,并输出。

查看完整回答
3 反对 回复 2017-09-14
?
慕用4063026

TA贡献195条经验 获得超115个赞

C

百度百科:static

静态局部变量有以下特点:

该变量在全局数据区分配内存;

*静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;

静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;

它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;


查看完整回答
1 反对 回复 2017-11-03
?
望远

TA贡献1017条经验 获得超1032个赞

静态变量的赋初值语句只会被执行一次,以后的初值是上一次函数调用结束后静态变量的值,
循环2次,第一次初值是1,x=1*(1+1),调用结束后输出2,x的值保留为2,第二次,赋值语句失效,直接执行x=2*(2+1)输出6
结果输出26

不过这里incre()函数没有函数声明,运行会报错,两个函数默认为int类型的返回值也没有....

查看完整回答
1 反对 回复 2017-09-14
?
慕盖茨9754587

TA贡献7条经验 获得超2个赞

应该选B吧   incre函数中的x是静态变量  每次运行结果都是2   运行两次  所以输出22

查看完整回答
反对 回复 2017-09-14
  • 3 回答
  • 0 关注
  • 2200 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信