複雜宣告展開

2021-09-24 05:22:43 字數 719 閱讀 4685

分解:

1、 fp 和 * 號括在一起,說明 fp 是乙個指標,指向 t1 型別:

typedef

int(*t1

(void*)

)[10]

;// 用其他型別定義型別t1

t1 *fp;

// fp是指向t1型別的指標

2、 t1 應該是乙個函式型別,引數是 void * ,返回值是 t2 型別:

typedef

int(

*t2)[10

];// 用其他型別定義型別t2

typedef t2 t1

(void*)

;// 用型別t2和其他型別定義型別t1

t1 *fp;

// fp是指向t1型別的指標

3、 t2 和 * 號括在一起,應該也是個指標,指向 t3 型別:

typedef

int t3[10]

;// 用其他型別定義t3

typedef t3 *t2;

// 用型別t3和其他型別定義型別t2

typedef t2 t1

(void*)

;// 用型別t2和其他型別定義型別t1

t1 *fp;

// fp是指向t1型別的指標

顯然, t3 是乙個 int 陣列,由10個元素組成。

複雜宣告解析

c語言的指標很久沒看了,複習一下,做一下總結。c語言的複雜宣告,例如 void f int,int int 怎麼樣,是不是很複雜?看著摸不到頭腦,不知從何說起。看了挺多資料,主要是應用 右左法則 現總結如下 1.基本的c語言宣告 int a 宣告乙個整形數a int a 宣告乙個指標,該指標指向乙個...

C語言複雜宣告

專家程式設計 第三章介紹了如何分析複雜的宣告,講的非常不錯。對於作者介紹的分析複雜宣告的方法,我沒有完全掌握,不過,我有我自己的一套方法來解析複雜的宣告,正所謂條條大道通羅馬,只要結果一樣,必須在乎過程呢。今天在網上找了幾個複雜的宣告,練練手 宣告的例子全部來自網路,原諒出處未詳 記下此文,作個標記...

C語言複雜宣告

問題1 宣告與函式 void 0 讓我們從兩個不同的途徑來詳細分析這個問題。分析 首先,最基本的函式宣告 void function paramlist 最基本的函式呼叫 function paramlist 鑑於問題中的函式沒有引數,函式呼叫可簡化為 function 其次,根據問題描述,可以知道...