資料結構中typedefstruct用法

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

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樓:

看這個

在資料結構中,int InitList SqList L 中的全部不用,即不用引用,也都可以通過VC,怎麼回事啊

int initlist sqlist l 表示引用,而c語言中沒有引用,那個是c 中的vc它也識別不了,只是當成warning 對於修改實參值我們都是通過指標來實現的 也可以用函式返回值 即int initlist sqlist l 你那個是將結構體作為實參傳進去的,而不是這個結構體的地址 c 支...

在資料結構中,資料的邏輯結構,資料的儲存結構及資料的運算之間存在著怎麼樣的關係

資料的邏輯結構決定了資料間運算關係的具體定義,而資料的儲存結構與資料的運算方法,沒有直接的關係,資料的儲存結構決定了維護資料邏輯結構時各種操作的運算複雜程度。在資料結構中,資料的邏輯結構,資料的儲存結構及資料的運算之間存在著怎麼樣的 資料的儲存結構及資料的運算之間存在著怎樣的關係 在資料結構中,邏輯...

資料結構中表示什麼意思啊,資料結構中 是什麼意思

樓上的答案不盡完全 和 是分開,也表示指標,但進一步講,它表示後面的root是指向bitree結構型別變數的指標。而 是取地址符,這個在scanf函式中就早有體現,其意義為,傳的是root指標的地址。而傳引數其實傳的都是值,只不過這裡使用了 表示傳的值為一個地址值,以方便在createbitree中...