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語言字串指標
- iOS開發系列--C語言之指標iOSC語言指標
- C語言之_雙重指標、多檔案、include、檔案C語言指標
- c語言指標詳解C語言指標
- C語言雜談:指標與陣列 (上)C語言指標陣列
- C語言雜談:指標與陣列 (下)C語言指標陣列
- C語言雜談:指標與陣列(下)C語言指標陣列
- 函式指標複雜的例子函式指標
- C語言指標詳解(一)C語言指標
- C語言指標詳解(二)C語言指標
- C語言之標準檔案操作C語言
- C語言(指標)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語言之高階資料講解C語言
- C語言:指標,C的靈魂C語言指標
- C++智慧指標模板類複習C++指標
- 你正真瞭解C語言中的指標嗎C語言指標
- C語言核心之陣列和指標詳解C語言陣列指標
- C語言知識彙總 | 51-C語言字串指標(指向字串的指標)C語言字串指標
- 搞清楚C語言指標C語言指標
- C語言 指標與陣列C語言指標陣列
- C語言指標基本知識C語言指標
- C語言指標用法大全C語言指標