關(guān)于結(jié)構(gòu)體地址與結(jié)構(gòu)體指針的一些分析

 當(dāng)我在學(xué)習(xí)C語言的鏈表實(shí)現(xiàn)時(shí),遇到了一些問題,通常鏈表的表頭是通過結(jié)構(gòu)體創(chuàng)建的,而表頭中包含所需要指向的第一個節(jié)點(diǎn)與整個鏈表長度等信息,對于在表頭中所存儲的地址信息感到一點(diǎn)疑惑。
如一下創(chuàng)建的一個單向鏈表:

“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。

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存儲的是什么?
2.TLinkList的長度是多大?
3.TLinkList的鏈表與第一個結(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中存儲的為其指向結(jié)點(diǎn)的地址,TLinkList的長度為8,其地址可以用下圖表示:
關(guān)于結(jié)構(gòu)體地址與結(jié)構(gòu)體指針的一些分析

網(wǎng)站名稱:關(guān)于結(jié)構(gòu)體地址與結(jié)構(gòu)體指針的一些分析
標(biāo)題網(wǎng)址:http://muchs.cn/article40/pdggeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、電子商務(wù)、靜態(tài)網(wǎng)站、服務(wù)器托管、域名注冊、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化