回覆列表
  • 1 # 程式設計知識分享

    使用指標訪問陣列元素。

    現在假設有一個整型陣列定義為 int data[5] ;

    現令data[0]=0;data[1]=1;data[2]=2;data[3]=4;data[4]=4;

    然後涉及到了我們的問題怎麼訪問這5個元素

    通常的做法可以用下標法,即直接用data[0]表示第一個元素,data[1]表示第二個元素等等。

    如果採用指標的方法,我們要注意幾個問題。首先指標是一個儲存地址的變數,而陣列的名即是陣列的地址,*運算子則可以將某地址所儲存的值的出來。

    由以上三點可得, data表示第一個元素的地址,那麼*data即是第一個元素的值,data+1表示第二個元素的地址,那麼*(data+1)即是第二個元素的地址。完整程式如下

  • 2 # 玩轉嵌入式

    指標是C語言中很重要的一部分內容,可以說是C語言的精髓,但是指標在初學的時候確實比較難理解,尤其是與陣列混在一起之後,很容易搞混淆。下面講解一下指標如何訪問陣列,及注意事項。

    首先看幾張圖。

    上圖中,定義了一個int型陣列,有4個元素,定義了指標變數p。p=&a[0]的意思是將首元素的地址賦值給指標變數。

    p=a的意思是將首元素的地址賦值給指標變數。

    *p=a的意思是將首元素的地址賦值給指標變數,在宣告的時候完成了賦值。

    由以上可以看出,p=&a[0],p=a,*p=a 三者的含義是一致的。

    陣列名a代表的就是陣列地址,所以p=&a[0],p=a,二者是等價的。

    宣告時賦初值:

    int *p=&a[0] 和 int *p=a是一致的。

    透過指標引用陣列元素時:a[1]=*(p+1)。

    必須要注意的是:

    a:陣列首元素的地址(每個元素都是int型別)。

    a+2:陣列的第3個元素的地址。

    * (a+2):陣列的第3個元素的地址。

    採用指標訪問陣列時速度要快於直接訪問陣列的下標,所以指標的效率要比陣列高很多。

  • 中秋節和大豐收的關聯?
  • 倚天小說,山中老人霍山的武功應該怎麼定位?能夠排進前五名嗎?