gpt4 book ai didi

c++ - 我可以将二维数组视为连续的一维数组吗?

转载 作者:行者123 更新时间:2023-12-03 10:05:16 25 4
gpt4 key购买 nike

考虑以下代码:

int a[25][80];
a[0][1234] = 56;
int* p = &a[0][0];
p[1234] = 56;

第二行是否调用未定义的行为?第四行呢?

最佳答案

这取决于解释。虽然数组的连续性要求在如何布局多维数组方面没有太多想象空间(这在之前已经指出),但请注意,当您在做 p[1234] 时您正在索引仅 80 列的第零行的第 1234 个元素。有些人将唯一有效的索引解释为 0..79(&p[80] 是一个特例)。

信息来自C FAQ这是 Usenet 在与 C 相关的问题上收集的智慧。(我认为 C 和 C++ 在这个问题上没有区别,这非常相关。)

关于c++ - 我可以将二维数组视为连续的一维数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66100693/

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