在循环中设置指向 int 值的指针

Set pointer to int value in loop

本文关键字:int 指针 循环 设置      更新时间:2023-10-16

我一直在网站上浏览,试图找到问题的答案,但我似乎找不到它。我想知道为什么在尝试增加指向 int 值的指针时得到一个奇怪的数字。

起初我认为这可能是因为我没有用大括号括起来我的变量 *sum,但它也没有帮助。

真的不明白为什么我无法连续增加总和指针:@。我假设我正在更改总和的地址而不是值,但我不确定为什么。

int userNumber;
int * sum = new int;
while (std::cin >> userNumber)
{
    if (userNumber == 0)
        break;
    else
        (*sum) += userNumber;
}
std::cout << "Loop ended with value: " << *sum << std::endl;

任何帮助都会很可爱!

当你使用 new int 分配int时,它不会被初始化。它的值将是不确定的,并且在不初始化的情况下以任何方式使用它都会导致未定义的行为

您需要初始化它,您可以使用分配来执行此操作:

int * sum = new int(0);