gpt4 book ai didi

c++ - 为什么二维数组上的指针算法有效?

转载 作者:太空狗 更新时间:2023-10-29 23:27:58 25 4
gpt4 key购买 nike

我写了下面的代码:

#include <iostream>
using namespace std;

int main()
{
int a[10][10];
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
a[i][j] = i * j;
cout << *(*(a + 3) + 4) << endl;
return 0;
}

我原以为它会打印一些垃圾数据或段错误。我得到的是 12。我在 c 和 c++ 中测试了它(分别使用 gcc 和 g++),虽然我没有测试过它,但我发现它在 VS 上的工作原理相同。为什么这样做有效,是否有关于此行为的官方文档?

最佳答案

*(a + b)=a[b] 取a的地址,移动b,取对应地址的值

所以 *(*(a + 3) + 4) 表示 *(a[3]+4) 表示 a[3][4 ]=12

关于c++ - 为什么二维数组上的指针算法有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20524258/

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