2008-12-07 133 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