Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过指针访问二维(或三维)数组_C++_C_Arrays_Pointers - Fatal编程技术网

C++ 通过指针访问二维(或三维)数组

C++ 通过指针访问二维(或三维)数组,c++,c,arrays,pointers,C++,C,Arrays,Pointers,当您有这样一个数组时: int foo[3][2][2]; 你可以做: int *bar = &foo[0][0][0]; 是这样吗 *bar == foo[0][0][0]; *(bar+1) == foo[0][0][1]; *(bar+2) == foo[0][1][0]; *(bar+3) == foo[0][1][1]; *(bar+4) == foo[1][0][0]; 我不确定,并且有一些代码依赖于它是否有效。在大多数系统上,是的。在大多数系统上,是的。是的,这就是所

当您有这样一个数组时:

int foo[3][2][2];
你可以做:

int *bar = &foo[0][0][0];
是这样吗

*bar == foo[0][0][0];
*(bar+1) == foo[0][0][1];
*(bar+2) == foo[0][1][0];
*(bar+3) == foo[0][1][1];
*(bar+4) == foo[1][0][0];

我不确定,并且有一些代码依赖于它是否有效。

在大多数系统上,是的。

在大多数系统上,是的。

是的,这就是所谓的,也是C使用的。

是的,这就是所谓的,也是C使用的。

注意:我不想对它进行比较,我只想知道这是否是等价的。注意:我不想对它进行比较,只想知道这是否是等价的。注意,虽然这些比较基本上是真实的,但严格来说,这是未定义的行为,因为他从int[2]类型数组中的元素获取指针。然后再加上任何大于2的数字都是未定义的行为(tho,仅在理论上,在现实中总是有效的)。请注意,虽然这些比较基本上是真实的,但严格来说,这将是未定义的行为,因为他从int[2]类型数组中的元素获取指针。然后再加上任何大于2的数字都是未定义的行为(tho,仅在理论上,在现实中总是有效的)。你有反例吗?或者如果没有反例,那么来自标准的东西表明多维数组的布局规则到底是什么。你有反例吗?或者如果没有反例,然后是标准中的一些东西,指示多维数组的布局规则是什么。