c語言之解釋複雜指標
int p;一個普通的int型別變數p
int p;是從右往左則p與*結合 p為指標變數 指向int型別指標變數
int p[3];p是一個有三個元素 的陣列 元素型別為int型別
int *p[3];
因為[]優先順序大於* 則p先與[]結合 則p為一個有三個元素的陣列
再與結合 從右到左 p[3]與*結合 表示是指標,則表示p陣列的三個元素都是指標
最後int 表示p陣列的三個元素都是指標並指向的是int型別
int (*p)[3];
因為()所以p先於*結合 表示p是一個指標
然後p指標再與[]結合表示p是一個指向一個三個元素的陣列的指標
最後int 表示p指標指向一個有三個元素的陣列 陣列元素為int型別
int **p;二級指標
p與最右邊的*結合 表示p是一個指標
p再與另外一個結合表示*p也是一個指標
最後與int結合 表示*p是一個指向int型別的指標而p就是一個指向int型別的指標的指標。稱為二級指標
int p(int);
p與()結合,說明p首先是個函式,
然後再與int結合,說明函式的返回值是int變數。
int (*p)(int);
因為()則p先於*結合 表示p是一個指標
再與(int)結合表示p是一個指向一個int形參的函式的指標
再與int結合表示p是一個指向int形參並返回in型別的函式的指標
int *(*p(int))[3];
()優先於*:則p先於(int)結合表示 p是一個int形參的函式
再與*結合 表示p是一個,int形參,返回指標,的函式
因為[]優先於*則先於[3]結合表示
p是一個,int形參,返回一個指向一個有三個元素陣列的指標,的函式
再又與*結合
我們先把之前搞定的有個字母表示
int * A【3】;
那麼就意味著 ,與*結合就表示 陣列的型別是指標型別
再與int結合 就表示陣列元素的型別是指向int型別的指標變數
最後回到p
p是一個函式 一個int形參的 返回一個指標 (指向陣列元素為int型指標的陣列)
int (*(*p)(int))(int);
*p表示p是一個指標
再與(int)結合 表示p是一個指向函式的指標 函式的形參為int型
再與*結合表示 p指向的這個函式的返回型別是指標型別
再與(int)結合表示這個函式返回的指標指向一個int形參的函式型別
再與int結合 表示這個函式返回指標指向的函式的返回值是int型別
總結
讀懂就是在瞭解一些優先順序的的情況下一步一步解刨
【】()> .
注意當分析到很複雜的時候可以採用分開的方法分析
例如 函式 可以從返回值再重新入手,不一定要還是要走變數讀起
陣列可以從陣列元素的型別入手
分開分析完後再連到一起寫出p變數的解釋
相關文章
- C語言之標準檔案操作C語言
- C語言指標詳解(一)C語言指標
- C語言指標詳解(二)C語言指標
- C語言指標C語言指標
- C語言之位段使用詳解C語言
- C語言指標(三):陣列指標和字串指標C語言指標陣列字串
- C語言指標(二) 指標變數 ----by xhxhC語言指標變數
- C 語言複雜知識點
- C語言之高階資料講解C語言
- C語言 函式指標C語言函式指標
- C語言指標筆記C語言指標筆記
- C語言基礎-指標C語言指標
- C語言指標學習C語言指標
- c語言指標彙總C語言指標
- C語言指標用法大全C語言指標
- 詳解c++指標的指標和指標的引用C++指標
- 你正真瞭解C語言中的指標嗎C語言指標
- C語言知識彙總 | 51-C語言字串指標(指向字串的指標)C語言字串指標
- C語言知識彙總 | 56-C語言NULL空指標以及void指標C語言Null指標
- C語言之基本概念C語言
- C語言之結構體C語言結構體
- C語言之氣泡排序C語言排序
- C語言之詭異字串C語言字串
- C語言基礎-1、指標C語言指標
- c語言實現this指標效果C語言指標
- 搞清楚C語言指標C語言指標
- C語言指標基本知識C語言指標
- C語言 指標與陣列C語言指標陣列
- C語言系列之 指標與陣列總複習視訊教程C語言指標陣列
- C\C++語言重點——指標篇 | 為什麼指標被譽為 C 語言靈魂?(一文讓你完全搞懂指標)C++指標
- C語言指標常見問題C語言指標
- 聊聊C語言和指標的本質C語言指標
- c語言-運算子,陣列,指標C語言陣列指標
- C語言之static關鍵字C語言
- C語言之輸入輸出C語言
- C語言之環形佇列C語言佇列
- C指標原理(15)-C指標基礎指標
- C指標原理(14)-C指標基礎指標