gpt4 book ai didi

C++ 数组和溢出

转载 作者:搜寻专家 更新时间:2023-10-31 00:10:00 24 4
gpt4 key购买 nike

我对下面的代码有一些误解。根据我的理解,tester 声明应该返回指向两个元素的第一个数组的指针,即 [1,2],因此 *(tester+1) 应该返回 [ 3,4],它只有 2 个元素,那么调用 (*(tester + 1))[2] 有何意义。这个例子顺便打印了数字 5。非常感谢任何澄清。

int main() {
int tester[][2]{ 1,2,3,4,5,6 };
cout << (*(tester + 1))[2] << endl;
return 0;
}

最佳答案

当您声明一个二维数组时,所有元素都是连续的。整个数组是一个单一的对象,所以当你超过其中一个行限制时,你不会越界,只要你还在数组中。所以 tester[1,1] 之后的下一个元素是 tester[2,0],这就是 (*(tester + 1))[2] 访问。

关于C++ 数组和溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40497706/

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