gpt4 book ai didi

c++ - 初级程序员 c++(局部变量声明与全局变量声明)

转载 作者:行者123 更新时间:2023-11-30 01:10:27 24 4
gpt4 key购买 nike

我是编程新手。当我注意到一些奇怪的行为时,我正试图将方程式的总和添加到先前的值中。

如果我在 int main () 中声明 int result 那么我得到一个空白的答案,但是如果我在 之外声明 int result >int main () 然后我得到这些值:6,11,16...91,96,101。这对我来说没有意义,因为我没有其他功能。

为什么会这样?

#include<iostream>
using namespace std;

int main ()
{
int y =1;
int result;

while (result <100)
{
result = y +5;
cout << result << ",";
y = result;

}
}

最佳答案

在一个函数中,int result; 声明了一个名为result 的变量,但没有将其初始化为任何特定值。在您为其分配一个值之前,它可以是任何值,并且从中读取时的行为是未定义的。因此,当您在 while 条件中读取它的值时,它可以是任何东西;您的循环可能会执行,也可能不会。您需要为 result 提供一个初始值,以使程序的行为得到明确定义:

int result = 0;

与局部变量不同,全局变量被定义为在未显式提供初始值时初始化为默认值,因此当您在 while 中读取 result 的值时> 条件,它是 0,您的循环将执行。

关于c++ - 初级程序员 c++(局部变量声明与全局变量声明),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37621856/

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