gpt4 book ai didi

c++ - 指向输出错误值的数组的指针?

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

我的代码正在输出 7339536 的值,这让我发疯了!

当我将数组的大小设置为 8 时,代码会给出 7339536 的输出,但如果我将数组的大小更改为 9,它会正确地输出值 8。

#include <iostream>

int main () {
int number[8];
number[8]=8;
int *a;
int **b;
a = &number[8];
b = &a;

std::cout<<**b;
return 0;
}

为什么值是 7335936 而不是 8?当我将数组大小更改为 9 时,正确输出 8,所以我很困惑。

最佳答案

我不确定您对 number[8]=8 的意图,但这是错误的。名为 number 的数组中只有 8 个元素,这将尝试设置第 9 个元素。

此后的所有内容都将被没收,包括稍后获取所述元素地址的类似尝试。

记住数组的名称是number,而不是number[8];括号是其类型的一部分(即 int[8])。

是的,我们不写 int[8] number; 是令人困惑的。这主要是出于历史原因,虽然this hypothetical alternative would come with its own problems !

关于c++ - 指向输出错误值的数组的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54622434/

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