typedef關鍵字與結構體,結構體指標

2021-10-24 03:20:37 字數 1295 閱讀 3819

請移步原文

一、使用typedef定義結構體

typedef用來定義新的資料型別,通常typedef與結構體的定義配合使用。使用typedef的目的使結構體的表達更加簡練(所以說typedef語句並不是必須使用的)。

定義乙個名字為treenode的結構體型別(現在並沒有定義結構體變數,並不占用記憶體空間):

struct treenode

;為結構體起乙個別名node,這時node就等價於struct treenode

typedef struct treenode node;

1將結構體的定義和typedef語句可以連在一起寫:

typedef struct treenode

node;

注意不要與「定義結構體型別的同時定義結構體型別變數」混淆:

使用typedef關鍵字定義結構體型別 定義結構體型別的同時定義結構體型別變數

typedef struct student

std;

//std相當於struct student struct student

std1,std2;

//定義了student資料型別的結構體和std1

、std2結構體變數

二、使用typedef定義結構體指標

定義乙個名為treenode的結構體,和指向該結構體型別的指標ptrtotreenode(不使用typedef):

struct treenode

;struct treenode *ptrtotreenode; //定義指標

使用typedef關鍵字用乙個單詞node代替struct treenode,並定於指向該結構體型別的指標ptrtotreenode:

struct treenode

;typedef struct treenode node; //用node代替struct treenode

node *ptrtotreenode; //定義指標

將結構體的定義和typedef連在一起寫,再次縮短**:

typedef struct treenode

node; //定義結構體並用node代替struct treenode

node *ptrtotreenode; //定義指標

還可以繼續縮短**,直接定義了指向結構體型別的指標,但是這種寫法沒有為結構體起乙個別名。

typedef struct treenode

*ptrtotreenode; //直接定義指標

在定義結構體時,省略struct後面的結構體名也是可以的,但是由於沒有名字,操作(如定義結構體變數)只能在定義的同時進行。

typedef關鍵字與結構體 結構體指標的定義

typedef用來定義新的資料型別,通常typedef與結構體的定義配合使用。使用typedef的目的使結構體的表達更加簡練 所以說typedef語句並不是必須使用的 定義乙個名字為treenode的結構體型別 現在並沒有定義結構體變數,並不占用記憶體空間 struct treenode 為結構體起...

typedef關鍵字與結構體 結構體指標的定義

一 使用typedef定義結構體 typedef用來定義新的資料型別,通常typedef與結構體的定義配合使用。使用typedef的目的使結構體的表達更加簡練 所以說typedef語句並不是必須使用的 定義乙個名字為treenode的結構體型別 現在並沒有定義結構體變數,並不占用記憶體空間 stru...

結構體,關鍵字

一.關鍵字 static 修飾全域性靜態變數 作用範圍侷限於它的原始檔,即只有本檔案內的 才可以訪問它,變數名在其他檔案內不可見。修飾區域性靜態變數 侷限於特定函式,但出作用域並不釋放,在函式體內的靜態變數的值也能夠維持。修飾靜態函式 作用範圍僅限於它的原始檔,即只有本檔案內才能夠呼叫,函式名在其他...