2008-12-07 97 views
1

当你有一个这样的数组:访问一个二维(或三维)阵列通过指针

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]; 

我不确定,并有一些代码依赖如果有效。

+0

注意:我不想进行比较,只是想知道是否相当于。 – fmsf 2008-12-07 00:26:33

回答

0

在大多数系统上,是的。

+0

你有反例吗? – ysth 2008-12-07 04:46:38

+0

或者如果不是反例,那么标准中的某些内容表明布局规则对于多维数组的真实含义。 – 2008-12-07 14:17:05