gpt4 book ai didi

c++ - 为什么在尝试使i = i * i时出现错误 “using uninitialized memory ' i'”和 “uninitialized local variable '我已使用”

转载 作者:行者123 更新时间:2023-12-03 07:37:39 24 4
gpt4 key购买 nike

我是C++的新手,正在测试while循环以及C++的绝对速度及其对我的CPU的影响,但出现以下错误:

Severity Code Description Project File Line Suppression State Warning C6001 Using uninitialized memory 'i'
Severity Code Description Project File Line Suppression State Error 4700 uninitialized local variable 'i' used
我不知道如何读取错误消息,甚至还没有遇到过用C++进行初始化的信息,所以我不知道该怎么做。
#include <iostream>
using namespace std;

int main() {
long long i = 0;
while (i < 10000000000000000) {
long long i = i*i;
cout << i ;
}
cout << i;
return 0;
}

最佳答案

在while循环的主体中

while (i < 10000000000000000) {
long long i = i*i;
cout << i ;
}
您声明了未初始化且具有不确定值的变量 i,并且您正尝试使用此不确定值来初始化变量本身。
那是在这个宣言中
    long long i = i*i;
在初始值设定项中,使用了相同的声明变量i,该变量以与循环之前相同的名称隐藏变量的声明
用声明代替声明
   i = i*i;
但是最初,您应该将变量i设置为不等于0的某个值,例如10。
long long i = 10;
否则,表达式 i * i的结果将始终等于0。
就像是
#include <iostream>
using namespace std;

int main() {
long long i = 10;
while (i < 10'000'000'000'000'000) {
i = i*i;
cout << i ;
}
cout << i;
return 0;
}
尽管您应谨慎选择变量 i的初始值,因为表达式 i * i中可能会发生溢出,并且可能会导致无限循环。

关于c++ - 为什么在尝试使i = i * i时出现错误 “using uninitialized memory ' i'”和 “uninitialized local variable '我已使用”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65850709/

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