嵌入式開發C語言之指向陣列的指標
一維陣列和指標:
對於一位陣列和指標是很好理解的: 一維陣列名: 對於這樣的一維陣列:int a[5]; a作為陣列名就是我們陣列的首地址, a是一個地址常量 . 首先說說常量和變數的關係, 對於變數來說, 用箱子去比喻再好不過了, 宣告一個變數就宣告一個箱子,比如我們開闢出一個蘋果型別的箱子, 給這個變數賦值就是把盛放蘋果的箱子中放入一個實實在在的蘋果, 這就是變數的賦值. 而對於陣列來說, 就是一組型別相同的箱子中,一組蘋果箱子, 可以放入不同的蘋果. 一維陣列空間: 變數被聲明後, 我們操作編譯器, 對我們的C原始檔進行編譯, C在編譯的時候 就會給我們的變數開闢相應的空間, 而對於陣列而言, 開闢的空間是連續的. 我們把每個空間叫做儲存單元, 每個空間都是有自己的編號, 就像我們現實生活中每戶人家都有自己的一個門牌號一樣, 系統陣列空間地址是相連的, 並且我們的陣列名就是一維陣列首地址, 是一個地址常量. 指標: 既然陣列的是佔用連續的儲存單元, 並且陣列的首地址就是陣列名, 我們可以通過指標變數來取出相應的地址. 指標變數, 就是這個箱子是專門存放其他箱子地址的. 我們可以把陣列首地址給我們的指標變數. int a[7],*p; p=a;
二維陣列和指標:
對於初學者對二維陣列和指標的理解很模糊, 或者感覺很難理解, 其實我們和生活聯絡起來, 這一切都會變得清晰透徹.
我們用理解一維陣列的思想來理解二維陣列, 對於一維陣列,每個箱子裡存放的是具體的蘋果, 二維陣列,就是把一維陣列中的內容中又存放了一系列的箱子, 這樣就構成了二維陣列.
這就像一輛火車, 火車有很多節火車廂, 每個火車廂裡面有一趟座位, 那我們火車廂的編號和每個火車座位的編號就不同了. 例如int a[3][4] ; 3節火車廂, 每個火車廂中有四個挨著的座位. 實際的座位的編號和我們的火車廂的編號這是我們要區分開的, 我們的火車廂編號就是a[0],a[1],a