鍊錶
typedef 原名 別名1,別名2;typedef
int t,*int
//typedef 起別名;相比巨集定義的直接替換,typedef是對型別的封裝。
#define int *int int a,b;
//相當於 int *a,b;
typedef
int *int
int a,b;
//相當於 int *a,*b;
//typedef 給結構體起別名會使得結構體更方便,因為每次使用都不能忘記 struct ,如:
typedef struct
datadate,*pdate;
//定義結構體之後起結構體和結構體指標別名;
int (*)[3]typedef int (*ptr_to_array)[3];//
給陣列指標起別名
int (*)(void
)typedef
int (*ptr_to_array)(void);
//給乙個函式指標起別名(因為並列括號,第乙個有 '*' ):指向引數為 void,返回值為 int 的函式
void (*funa( int , void (*funb)( int ) ) )( int)//
由優先順序找到:void (*funb)( int );函式指標,引數為 int,返回值為 void 的函式;(void :無型別)
//然後:*funa( int , void (*funb)( int ) ):指標函式,引數為 int 整性和函式指標,返回值:
void (*funa( 引數 ) )( int
)://
在找返回值時,只需把函式定義部分去掉,即 void (*)( int );函式指標,指向的函式引數為 int,返回值為 void;
typedef void ( *ptr_to_tun )( void );
ptr_to_tun funa( int,ptr_to_fun);
注:void *fun( int ):指標函式;返回值為指標的函式;去掉函式體就是函式返回值型別:void *
void (*fun)( int ):函式指標;指向引數為 int 返回值為 void 的函式;去掉函式就是;去掉指標名就是指向函式的型別:void (*)(int)
void ( *fun( char ) )( int ):指標函式,【引數為char】【返回值:函式指標,void (*)( int )】
名前有 '*' ;名後為 ')' 說明為函式指標,名後為 '(' 說明為指標函式【去掉函式名和引數列表剩下的就是函式的返回值型別】
C語言靜態鍊錶和動態鍊錶
1.靜態鍊錶 結構體中的成員可以是各種型別的指標變數,當乙個結構體中有乙個或多個成員的基型別是本結構體型別時,則稱這種結構體為 引用自身的結構體 如 struct link a p是乙個可以指向 struct link 型別變數的指標成員。因此,a.p a 是合法的表示式,由此構成的儲存結構如圖1所...
c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶
下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...
c語言鍊錶 鍊錶
在儲存一大波數的時候,我們通常使用陣列,但有時候陣列顯得不夠靈活,比如有一串已經從小到大排序好的數 2 3 5 8 9 10 18 26 32 現在需要往這串數中插入6使其得到的新序列仍符合從小到大排列。如果我們使用陣列來實現這一操作,則需要將8和8後面的數字都依次往後挪一位,如果你覺得這幾個數不算...