C 指標閱讀能力提公升

2022-02-04 18:39:05 字數 1150 閱讀 4118

下面的識別符號你肯定在工程中看不到,但是在面試題中卻非常常見,掌握掌握還是不錯的。 

int (*p1)(int*, int (*f)(int*));  

int (*p2[5])(int*);  

int (*(*p3)[5])(int*);  

int*(*(*p4)(int*))(int*);  

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

嵌入式軟體公司對指標的考察非常強,需要深刻的理解。  

右左法則 (實在看不懂看這個)

-從最裡層的圓括號中未定義的標示符看起 

-首先往右看,再往左看 

- 遇到圓括號或方括號時可以確定部分型別,並調轉方向 

-重複2, 3步驟,直到閱讀結束

int (*p1)(int*,  int (*f)(int*));

==>    p1為指標,指向函式,指向的函式有int*,f為第二個引數,

f是乙個函式指標,指向的函式引數是int*,返回值為int;;;返回值為int

int (*p2[5])(int*);

==>    p2為陣列,有5個元素,這5個元素為指標,指向函式,函式型別為int (int*)

int (*(*p3)[5])(int*);

==>    p3為指標,陣列指標,指向陣列有五個元素,5個元素為指標,

是函式指標,指向的函式型別int(int*)

int* (*(*p4)(int*))(int*);

==>    p4為指標,函式指標,引數為int*,返回值為指標,是函式指標,

指向的函式型別int*(int*)

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

==>    p5為指標,函式指標,引數為int*,返回值為指標,指向陣列,,

指向的陣列型別為int[5]

typedef int(arraytype)[5];

typedef arraytype* (funtype)(int*);

funtype* p5;

3、小結

右左法則總結於編譯器對指標變數的解析過程 

指標閱讀練習的意義在於理解指標的組合定義 

可通過typedef簡化複雜指標的定義

提公升架構能力

摘自 easy dry是don t repeat yourself的縮寫,翻譯過來就是 不做重複事 這正是 個逼近軟體本質的原則,它指導我們把經常使 的功能抽象成庫,把重複出現的 重構為可重 的框架模組。如果你 dry來要求 很快你就會發現 抽象和架構能 的飆公升。半自動化 但是我們活在現實世界,所...

教你閱讀MSDN英文文件,迅速提公升程式設計能力

在教大家閱讀英文文件之前,首先給大家明確乙個概念。c 和.net的區別?有一定程式設計經驗的同學應該多多少少知道這方面的概念,但是可能模糊,理解的不一定深刻。我在這裡簡單給出兩者的基本定義 c 僅僅就是一種程式語言,有它自己的語法和結構。net 是乙個執行環境,裡面包含了很多的庫。重點 我們使用c ...

搜尋能力提公升計畫

值得反思的乙個問題 自己從第一次接觸電腦開始,自己的搜尋能力是否得到過刻意練習?還是說一直以來都是憑藉直覺在進行搜尋?接觸電腦不下十年,但真的會用電腦嗎?真的會搜尋嗎?如今時代我們已經有了如此強大的資訊工具,自己需要什麼資訊 需要什麼書籍都可以在很短的時間內獲取,但我們卻仍然這麼愚笨 膚淺,仍沒有更...