當(dāng)我在學(xué)習(xí)C語言的鏈表實(shí)現(xiàn)時(shí),遇到了一些問題,通常鏈表的表頭是通過結(jié)構(gòu)體創(chuàng)建的,而表頭中包含所需要指向的第一個(gè)節(jié)點(diǎn)與整個(gè)鏈表長度等信息,對(duì)于在表頭中所存儲(chǔ)的地址信息感到一點(diǎn)疑惑。
如一下創(chuàng)建的一個(gè)單向鏈表:
typedef struct _tag_LinkListNode LinkListNode; //結(jié)點(diǎn)取別名
struct _tag_LinkListNode
{
LinkListNode* next;
}; // 結(jié)點(diǎn)指針域定義
typedef struct _tag_LinkList
{
LinkListNode header;
int length;
} TLinkList; //頭結(jié)點(diǎn)定義
struct Value
{
LinkListNode header;
int v;
}; //數(shù)據(jù)域定義
此時(shí)有如下問題:
1.TLinkList中的header存儲(chǔ)的是什么?
2.TLinkList的長度是多大?
3.TLinkList的鏈表與第一個(gè)結(jié)點(diǎn)是如何關(guān)聯(lián)的?
void main(void)
{
struct Value v1;
v1.v = 1;
TLinkList* list = (TLinkList*)malloc(sizeof(TLinkList)); //創(chuàng)建鏈表
LinkListNode* current = (LinkListNode*)list; //將鏈表強(qiáng)制類型轉(zhuǎn)換
printf("list size is %d\n",sizeof(list));
printf("&list address is %p\n", &list);
printf("list address is %p\n", list);
printf("&(list->header) address is %p\n", &(list->header));
printf("TLinkList size is %d\n", sizeof(TLinkList));
printf("list->header value is %p\n",list->header);
printf("&v1 address is %p\n", &v1);
printf("&(v1->header) address is %p\n", &(v1.header));
printf("&(list->length) address is %p\n", &(list->length));
printf("list length value is %d\n", list->length);
free(list);
}
其輸出結(jié)果為;
list size is 4
&list address is 0113FBE8
list address is 014CF558
&(list->header) address is 014CF558
TLinkList size is 8
list->header value is 0113FBF4
&v1 address is 0113FBF4
&(v1->header) address is 0113FBF4
&(list->length) address is 014CF55C
list length value is 0
根據(jù)輸出結(jié)果,知道header中存儲(chǔ)的為其指向結(jié)點(diǎn)的地址,TLinkList的長度為8,其地址可以用下圖表示:
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
名稱欄目:關(guān)于結(jié)構(gòu)體地址與結(jié)構(gòu)體指針的一些分析-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://jinyejixie.com/article22/dphhjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、企業(yè)網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站制作、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容