C語言(鍊錶和typedef)

2022-09-04 15:39:26 字數 1343 閱讀 4453

鍊錶

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後面的數字都依次往後挪一位,如果你覺得這幾個數不算...