在C中,二維數組的存儲方式與線性數組類似,但是它們使用雙指針進行索引。也就是說,如果我們定義爲什麼編譯器不將int [] []轉換爲int **,這在理論上是可行的?
int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}.
a
第一點,像
{p1 = 0x7fff5fbffb58 , p2 = 0x7fff5fbffb70, p3 = 0x7fff5fbffb88}
然後p1
點至1,p2
點到4點p3
至7
那麼爲什麼不t編譯器允許從二維數組轉換爲雙指針,這在理論上是可行的?儘管二維數組可以一個接一個地存儲,但索引信息總是可以傳遞給任意的雙指針。
對於二維數組,編譯器不存儲中間指針,假想的'p1','p2'和'p3'。對於錯誤的假設,爲 – 2012-01-27 11:01:42
-1。這在理論上是不可能的。 **數組不是指針!** – 2012-01-27 14:06:29