二維數組與指針之間的基本關系


    在c語言中,二維數組與指針之間中有着密切的關系。

    一般來說,二維數組的表現形式為a[i][j],而在指針中,與這個表現形式相同的指針形式為*(*(a+i)+j);

    為什么要這么表示呢?

    首先我們理解二維數組,二維數組就是一個平面,里面有很多小格子,格子里面可以儲存元素,一般都是按行按列順序排放。我們不妨轉化一個角度來看:二維數組就是一維數組。為什么這么說呢?

實際上,二維數組就是有多個一維數組組件而成的,把二維數組看作一維數組,一維數組里面的每一個元素,恰好又是一個一維數組

 

 

(電腦繪圖太難了嗚嗚嗚,將就着看吧)

然后我們從一維數組的方式去理解指針,一維數組一般a[n],指針上表示通常為*a,那么,一維數組里面元素的地址,我們該如何去表示呢?這時的表示方法就應該為*a[i]+j,也可以表示為a[i]+j,這時,我們要取出里面的元素,就應該為*(*(a+i)+j);這時我們要把“a[i]”這個指針,要當作列來看,第i個就是所謂的第i行的元素,加上j后,就是在第i行的基礎上,在偏移j個字節單位(看類型),這樣我們就可以得到第i行第j列的元素了。這個時候,二維數組的運算法則就可以運用到指針上面來了;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM