gpt4 book ai didi

c - 为什么这个非静态变量通过函数调用保留其值?

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:41 24 4
gpt4 key购买 nike

void testFunc(int);

int main(int argc, char** argv) {

testFunc(1);
testFunc(2);
testFunc(3);

return (EXIT_SUCCESS);
}

void testFunc(int another)
{
int num;
printf("num: %i\n", num);
num = another;
}

输出:号码:127383283数量:1数量:2

如果我每次都在将变量赋值给某物之前打印变量,难道我不应该总是在没有 static 关键字的情况下得到垃圾值吗?

最佳答案

正在获取垃圾值 - 碰巧在这种情况下,这些垃圾值恰好是您在上一次调用函数时分配的值。

如果您在对 testFunc() 的调用之间调用另一个函数,或者使用更高的优化设置进行编译,或者使用不同的编译器,您可能会看到完全不同的东西。

关于c - 为什么这个非静态变量通过函数调用保留其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373189/

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