gpt4 book ai didi

c - 如何在 if 语句中初始化一个变量并在 if 语句之外使用它

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

我试图用一个特定的值初始化一个 int 一次并重复使用它。

void some_method(int par){
int ch=1;
if (ch==1){
int x = par;
}
int y = x + 2;
}

我知道这段代码肯定行不通,因为x只在if语句的范围内。 some_method() 在 while 循环中被重复调用,所以如果我在 if 语句之外声明 x 那么每次调用 some_method() 时,默认为零。我只希望 x 保持不变。我考虑过让 x 成为一个全局变量,但我确信一定有比这更好的解决方案。任何建议都会有所帮助!

谢谢。

最佳答案

这可以通过 static 变量来完成:

void some_method(...)
{
static int initialized = 0, x;

if(!initialized)
{
x = ...
initialized = 1;
}
/* Use x. */
}

请注意,您随后需要在每次调用时“支付”initialized 的检查费用,但如果计算x 的值所完成的工作足够昂贵,它可能是值得的。

关于c - 如何在 if 语句中初始化一个变量并在 if 语句之外使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13881329/

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