資料結構中typedefstruct用法

2021-08-08 01:15:39 字數 2320 閱讀 4329

1樓:憶江南憶夢

在c語言中,可以使用結構體(struct)來存放一組不同型別的資料。結構體的定義形式為:

struct 結構體名{

結構體所包含的變數或陣列

結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員(member)。

結構體定義:

第一種:只有結構體定義

struct stuff{

char job[20];

int age;

float height;

第二種:附加該結構體型別的“結構體變數”的初始化的結構體定義

//直接帶變數名huqinwei

struct stuff{

char job[20];

int age;

float height;

}huqinwei;

也許初期看不習慣容易困惑,其實這就相當於:

struct stuff{

char job[20];

int age;

float height;

struct stuff huqinwei;

第三種:如果該結構體只用一個變數huqinwei,而不再需要用struct stuff yourname;去定義第二個變數。

那麼,附加變數初始化的結構體定義還可進一步簡化出第三種:

struct{

char job[20];

int age;

float height;

}huqinwei;

把結構體名稱去掉,這樣更簡潔,不過也不能定義其他同結構體變數了——至少我現在沒掌握這種方法。

結構體變數及其內部成員變數的定義及訪問。

要分清結構體變數和結構體內部成員變數的概念。

就像剛才的第二種提到的,結構體變數的宣告可以用:

struct stuff yourname;

其成員變數的定義可以隨宣告進行: struct stuff huqinwei = {"manager",30,185};

也可以考慮結構體之間的賦值:

struct stuff faker = huqinwei;

//或 struct stuff faker2;

// faker2 = faker;

列印,可見結構體的每一個成員變數一模一樣

如果不使用上邊兩種方法,那麼成員陣列的操作會稍微麻煩(用for迴圈可能好點)

huqinwei.job[0] = 'm';

huqinwei.job[1] = 'a';

huqinwei.age = 27;

huqinwei.height = 185;

結構體成員變數的訪問除了可以藉助符號".",還可以用"->"訪問。

2樓:千鋒教育

1、定義結構體:

struct lnode

;至於struct lnode *next;是定義一個struct lnode結構體型別的指標,當然要有struct lnode了。就像定義int型,要用int一樣。

2、定義型別:

typedef struct lnode lnode;

就是定義新的型別lnode,即:struct lnode的別名。為了方便呼叫,少打字。

3樓:

struct lnode

;這樣寫的話,就是定義了一個名叫lnode的結構體;如果利用這個結構體定義一個變數就寫成:struct lnode abc;

typedef struct lnode

lnode,*linklist;

這個大括號後面的lnode是struct lnode這個結構體型別的別名,這個可以自己起名的,不過在這裡比較特殊,別名和結構體的名字一致了,其實可以是任意的名字;*linklist也是指向struct lnode這個結構體的一個指標;也是個別名 ,這時要是在宣告一個結構體變數就可以寫成 lnode abc;了不要用struct lnode abc了;

4樓:

這是typedef比較蛋疼的一種用法,因為定義一個型別以後每次出現該型別時都要宣告為struct ***xx name,不知道哪個發明了這種前面加上typedef,以後宣告這個型別就不用前面加上struct了。直接*** name就可以了。

後面出現的lnode,*linklist都是由lnode型別的。你沒學過自己定義型別最好先去看下。定義struct在c中還是很重要的

5樓:

看這個

在資料結構中,資料的邏輯結構,資料的儲存結構及資料的運算之間

資料的邏輯結構決定了資料間運算關係的具體定義,而資料的儲存結構與資料的運算方法,沒有直接的關係,資料的儲存結構決定了維護資料邏輯結構時各種操作的運算複雜程度。在資料結構課程中,資料的邏輯結構,資料的儲存結構及資料的運算之間存在著怎樣的關係?1 資料的邏輯結copy構說明資料元素bai之間的順序du關...

資料結構中弧和路徑的區別,資料結構中和有什麼區別

這兩個概念差太遠了bai吧du?弧 指的是有向圖裡面的邊,zhi 他是有明確方向的。如dao果是專無向圖的邊,直接叫做 邊 屬。比如有向圖的 v1 結點到 v2 結點的弧可能是 路徑 指的是圖 包括有向圖和無向圖 裡面連線兩個結點之間的邊的集合,也就是乙個頂點序列。比如 v1 到 v3 的路徑可能這...

資料結構c語言描述,資料結構(C語言描述)

include include include define datatype int define maxsize 1000 typedef struct nodebitreenode datatype bt maxsize bitreenode buildbtree datatype bt,in...