static定义变量的值问题
static定义变量的值问题
#include <stdio.h>
int f(int x)
{
static int y=1;
x+=y;
y++;
return x;
}
int main(void)
{
int k;
k=f(3);
printf("%d %d\n",k,f(k)); //%d和%d之间只有1个空格
return 0;
}
//这题输出的结果是4 6
//说明static定义的y在重新执行static int y = 1;后没有发生值的i变化
//可能是因为static关键字将y定义到了静态存储区
//在静态存储区的值由于某种性质不会轻易地发生变化
作者:Evinci
出处:https://www.cnblogs.com/evinci/p/17123981.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律