c語言深度剖析(37)—指針閱讀技巧分析

1.指針閱讀技巧解析

  • 右左法則 (實在看不懂看這個)
    • 從最裏層的圓括號中未定義的標示符看起 
    • 首先往右看,再往左看 
    • 遇到圓括號或方括號時可以確定部分類型,並調轉方向 
    • 重複2, 3步驟,直到閱讀結束
  • 示例:
#include <stdio.h>

int main()
{ 
    int (*p)(int)

    int (*p1)(int*, int (*f)(int*));
    
    int (*p2[5])(int*);
    
    int (*(*p3)[5])(int*);

    int*(*(*p4)(int*))(int*);
    
    int (*(*p5)(int*))[5];

    return 0;
}
  • 解析如下:

  • 最後一個指針p5用typedef定義如下:
typedef int(ArrayType)[5];
 
typedef ArrayType* (FunType)(int*);
 
FunType* p5;
  • 工程中複雜指針儘量用typedef定義。

2.小結

  • 右左法則總結於編譯器對指針變量的解析過程 
  • 指針閱讀練習的意義在於理解指針的組合定義 
  • 可通過typedef簡化複雜指針的定義
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章