gpt4 book ai didi

c++ - 更改数组中声明的变量

转载 作者:太空狗 更新时间:2023-10-29 20:34:45 26 4
gpt4 key购买 nike

我一直在尝试更改数组中变量的值。我认为下面的代码会产生

1, 1

但它确实产生了

1, 0

表示 a 从未更改过。所以我的问题是:为什么下面的代码不更改 a 的值,我该如何重写它才能做到这一点?

#include <iostream>

int main()
{
int a = 0;
int b = 0;
int c[2] = { a, b };
c[0]++;
std::cout << c[0] << ", " << a;
}

最佳答案

why doesn't the code below change the value of a, ...

因为 ab 的拷贝被用来初始化原始数组。

... and how can I rewrite it to do so?

您不能使用原始引用数组来执行此操作 ( won't compile ),但可以使用 std::reference_wrapper工作正常:

#include <iostream>
#include <functional>

int main()
{
int a = 0;
int b = 0;
std::reference_wrapper<int> c[2] = { a, b };
c[0]++;

std::cout << c[0] << ", " << a << '\n';
}

查看 live demo

关于c++ - 更改数组中声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46676434/

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