1. 程式人生 > >【C語言】指標和陣列的區別和聯絡

【C語言】指標和陣列的區別和聯絡

1.指標

   int  *  p     ( 這裡定義一個指標      p為指標變數     指向的是某一個地址)

              

2.陣列

     int  arr [10]         這裡定義了10個int 型別的資料  可以通過arr[0]   arr[1].....來訪問陣列中的每個元素

3.指標陣列

     顧名思義:首先是一個數組   而每個陣列元素的型別又是一個指標

        ex:      int  * arr [5]         由於[  ]優先順序高於 *    所以 arr[5]先結合   為陣列   arr為陣列名  其每個陣列元素的的型別都為int *

4.陣列指標

     顧名思義:首先是一個指標  它指向的是一個數組

        ex:int (* arr)[5]       首先(* arr)結合成一個指標  它指向一個包含5個元素的int 型別陣列    指標變數為arr

5.函式指標

      從陣列 指標  我們理解到   函式指標應該也和其具有 一樣的性質         是一個指標       指向的是一個函式而已   

         int  (* p )  ( int * )= &fun           這裡 fun 是一個函式   *p   是 一個指標   有能力指向一個函式      它的 函式名為fun      函式引數型別為 int *   返回值型別為 int  型

6.函式指標陣列

       首先是一個數組   陣列 的每個元素是一個指標   分別指向不同的函式

    ex:  int (* p [3] ) (int *)  = { fun1,fun2,fun3}         是一個數組  有3 個元素    每個元素是一個*p 的指標  

7.指向函式指標陣列的指標

   首先  是 一個 指標  它指向的是一個數組  陣列的每個元素又是一個指標  其又  指向不同的函式

   ex:   int(*pr(* p)[3])(  int *) = {fun1 ,fun2,fun3}