gpt4 book ai didi

c - C中的静态存储类

转载 作者:行者123 更新时间:2023-12-02 07:29:16 25 4
gpt4 key购买 nike

如果我以这种方式在函数中声明一个静态变量:

static int i=4;
//自定义代码
i++;

它按预期工作,即它在函数调用之间维护变量值。

但是如果我声明如下:

static int i;
我=4;
//自定义代码
i++;

它不会跨调用维护值,而是像局部变量一样工作。

这是否意味着“i”不再是函数内部的静态变量?这种行为背后的原因是什么?

extern 关键字也会出现类似的情况。

最佳答案

它在函数调用中保存它的值,但是当你像这样分配一个变量时:

static int i=4;

它只分配一次。当你这样做时:

static int i;
i=4;

意思是:'创建一个变量一次。每次函数运行时都将 4 分配给它。'。

一个小演示:ideone

关于c - C中的静态存储类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com