搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 下面这段代码,打印输出的结果是
标题:
下面这段代码,打印输出的结果是
只看楼主
黑暗骑士5D
等 级:
新手上路
帖 子:89
专家分:0
注 册:2019-11-6
结帖率:
100%
楼主
已结贴
√
问题点数:6 回复次数:3
下面这段代码,打印输出的结果是
#include <stdio.h>
void hoho(){
static int k = 2;
k++;
printf("k=%d," , k);
}
int main(){
hoho();
hoho();
return 0;
}
为什么结果是k=3,k=4而不是k=3,k=3
搜索更多相关主题的帖子:
结果
打印
代码
int
输出
2020-02-25 16:55
liujin2
等 级:
新手上路
威 望:
1
帖 子:3
专家分:5
注 册:2010-10-27
第
2
楼
得分:5
static int k = 2;
变量 k 为static 类型,在没有重新赋值的情况下保持上一次的值不变。
第一次调用hoho(), k=3.
第二次调用hoho()时, k = 3+1 = 4;
2020-02-25 17:49
hbccc
等 级:
职业侠客
威 望:
5
帖 子:108
专家分:315
注 册:2020-2-18
第
3
楼
得分:1
static 是静态变量,第一次调用初始化赋值一次,第二次调用不再初始化赋值
2020-02-25 18:25
八画小子
等 级:
贵宾
威 望:
37
帖 子:705
专家分:2043
注 册:2010-11-11
第
4
楼
得分:0
关键字 static 修饰声明的变量并不是自动变量,其存储空间在数据段而不是栈段,因此一直存在,而且其值保持之前最后一次赋值的结果。
2020-02-26 00:05
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-499397-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.253827 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved