gpt4 book ai didi

c++ - 为结构的字段赋值,也改变其他变量

转载 作者:行者123 更新时间:2023-11-30 00:47:03 25 4
gpt4 key购买 nike

简单代码

#include <iostream>
using namespace std;

struct foo {
int bar;
};
struct foo tab[2];

int sum = 0;

int main()
{
tab[2].bar = 3; //this change 'sum' value!
cout << sum << endl;
return 0;
}

结果是 3 而不是 0。这太不可思议了,所以我可能遗漏了什么。我做错了什么?

最佳答案

数组从 0 开始,因此 tab[2] 将是第三个元素,但您只分配了其中的 2 个。

在这种情况下,sum 在内存中紧跟在 tab 之后,因此当您转到第三个 tab 所在的位置时,您实际上在内存中寻找 sum。

关于c++ - 为结构的字段赋值,也改变其他变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35969406/

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