gpt4 book ai didi

c++ - 使用将变量作为参数的函数初始化变量

转载 作者:搜寻专家 更新时间:2023-10-31 01:32:52 24 4
gpt4 key购买 nike

我最近在审查一些代码时遇到了一些让我感到困惑的事情。假设我有一个函数,int getNewNumber(int num, int dir),实现如下:

int getNewNumber(int num, int dir) {
int newNum = num;
if(dir == 1) {
newNum++;
} else {
newNum--;
}
return newNum;
}

现在,当调用函数时,我有这样的东西:

int number = getNewNumber(number, 1);

在传入newNum之前是否初始化为0?我对如何在初始化变量时将变量用作参数感到困惑。

最佳答案

Is it initialized to 0 before being passed into newNum?

也许吧。这取决于上下文。如果变量是全局静态变量,则在动态初始化之前对其进行零初始化。

如果它是一个自动变量,则传递给 getNewNumber 的值是不确定的,使用该值具有未定义的行为。一个体面的编译器会警告你。

I'm confused about how you can use the variable as an argument when it's being initialized.

如果变量不是静态初始化的,那么您不能以定义行为的方式在其自身的初始化中使用它的值。

如果变量在动态初始化之前是零初始化的,那么你可以使用这个值,但你也可以使用文字零,这样对程序的读者来说会更清楚。我认为没有任何有用的方法可以在变量自身的初始化中使用变量的值。

关于c++ - 使用将变量作为参数的函数初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42379043/

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