gpt4 book ai didi

c - 如何/何时在 C 语言中声明函数中的静态变量?

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:20 26 4
gpt4 key购买 nike

我的问题是在 foo() 函数中,sa 变量似乎是在那里声明和初始化的,但是因为它是静态的,编译器会在之后忽略它第一次?为什么它没有初始化回值 10 即使它是静态的?

#include <stdio.h>

void foo()
{
int a = 10;
static int sa = 10;

a += 5;
sa += 5;

printf("a = %d, sa = %d\n", a, sa);
}


int main()
{
int i;

for (i = 0; i < 10; ++i)
foo();
}

这打印:

a = 15, sa = 15
a = 15, sa = 20
a = 15, sa = 25
a = 15, sa = 30
a = 15, sa = 35
a = 15, sa = 40
a = 15, sa = 45
a = 15, sa = 50
a = 15, sa = 55
a = 15, sa = 60

最佳答案

在 C 中,static 表示它在调用之间持续存在,因此它与您的建议相反:初始化发生在第一次调用时。

关于c - 如何/何时在 C 语言中声明函数中的静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33554528/

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