回覆列表
  • 1 # 使用者3565113774745

    看後面兩個字:

    指標陣列,看後面兩個字,它是一個數組,陣列元素是指標;陣列指標,看後面兩個字,它是一個指標,指向一個數組;函式指標,看後面兩個字,它是一個指標,指向一個函式;指標函式,看後面兩個字,它是一個函式,返回指標型別;指向函式指標的陣列,看後面兩個字,它是一個數組,陣列元素是指向函式的指標,即函式指標。

    類似地,你可以自己分析一下什麼是 陣列指標陣列,指標陣列指標……#!#%¥#@%!

    ===============================================================

    玩完了文字遊戲,再來看看程式碼吧。比如 int* p[10] 和 int (*p)[10] ,哪個是指標陣列,哪個是陣列指標呢?其實很容易區分,可以按照運算優先順序從低到高的順序依次說出來就得到了其名字(PS:從高到低的順序也可以,那樣的話名字要倒過來唸)。

    int* p[10] // 指標運算的優先順序比下標低,所以排列結果是 指標<陣列,所以這是一個指標陣列int (*p)[10] // 加了括號後指標的優先順序更高,所以 陣列<指標,這是一個數組指標int* pfun(int a, int b) // 優先順序 指標<函式,所以這是一個指標函式int (*pfun)(int a, int b) // 函式<指標,所以這是一個函式指標

    下面可以自己嘗試定義一個函式指標陣列,先把基本定義寫好:

    新增函式定義:

    新增指標定義,注意要讓指標的優先順序比函式高:

    最後新增陣列的定義,要放在變數名旁邊:

  • 中秋節和大豐收的關聯?
  • 文言文《世說新語》之《期行》翻譯?