第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么下面這個(gè)數(shù)據(jù)結(jié)構(gòu)里把結(jié)構(gòu)體聲明為Node,結(jié)構(gòu)體中的指針域也是一個(gè)Node

為什么下面這個(gè)數(shù)據(jù)結(jié)構(gòu)里把結(jié)構(gòu)體聲明為Node,結(jié)構(gòu)體中的指針域也是一個(gè)Node

SMILET 2018-07-05 10:10:28
typedef int ElemType;typedef struct Node{ElemType data;struct Node *next;}Node;typedef struct Node *LinkList;
查看完整描述

3 回答

?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊

首先,應(yīng)該是要建立一個(gè)鏈表。那么你結(jié)構(gòu)體內(nèi)部必須要有一個(gè)指針指向下一個(gè)節(jié)點(diǎn)的地址。而結(jié)構(gòu)體內(nèi)部的 struct Node *next; 就充當(dāng)了這一個(gè)角色

查看完整回答
反對(duì) 回復(fù) 2018-07-08
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

每個(gè)Node是一個(gè)結(jié)構(gòu)體,包含兩個(gè)元素,第一個(gè)元素是ElemType類型的data,第二個(gè)元素是Node指針類型。so what?

查看完整回答
反對(duì) 回復(fù) 2018-07-08
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

不知道你的疑惑是不是 為什么在Node還沒有定義完的情況下我們就能用Node *next作為它的元素? 
如果你是問這個(gè)的話,我倒是可以說說我的看法。因?yàn)閏語言中指針都是占32bit或者64bit的數(shù)據(jù),在同一個(gè)系統(tǒng)中,指針占用的內(nèi)存空間都是一樣的。所以在編譯階段,

typedef struct Node{
ElemType data;
struct Node *next;
}Node;

typedef struct Node{
ElemType data;
xxx *next;
}Node;

是等效的,struct Node *next;xxx *next;都是一個(gè)占32bit或者64bit的數(shù)據(jù)類型。只有在后面使用Node后,struct Node *next;xxx *next;才會(huì)有區(qū)別。
你可以試試這樣,

typedef struct Node{
ElemType data;
struct Node next;
}Node;

就是next不是指針,而就是Node。這就會(huì)報(bào)錯(cuò)

error: field ‘next’ has incomplete type

因?yàn)檫@個(gè)時(shí)候Node并沒有定義完,編譯器都不知道要給他分配多少內(nèi)存空間。

如果你想問的不是這個(gè),那就忽略我的回答吧。


查看完整回答
反對(duì) 回復(fù) 2018-07-08
  • 3 回答
  • 0 關(guān)注
  • 612 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)