鏈表基礎:結構體變量和結構體指針


#include <stdio.h>
#include <malloc.h>

typedef struct node {
    struct node*next;
    int data;
}node;

int main()
{
    node*head;
    head = (node*)malloc(sizeof(node));   //指針動態申請一塊內存,指向大小為sizeof(node)的內存空間
    head->data = 3;                                     //變量初始化
    head->next = NULL;
    printf("%d\n", head->data);
    printf("指針為%d個字節\n",sizeof(head));  //雖然指向的結構體大小是八字節,但指針是四個字節。

    node a;                                      //聲明一個結構體類型的變量
    a.data=1;                                   //初始化結構體變量
    a.next=NULL;                            //結構中的next指針不指向任何內存
    printf("該結構體為%d個字節\n",sizeof(a));   //結構體內存為八個字節(4(int)+4(指針)=8字節)

    free(head);                               //(動態申請的空間需要手動釋放)釋放head指向的內存,將內存數據清除
    head = NULL;                          //head指針為NULL,不再指向這一塊內存。

    return 0;
}

注:不管指針指向哪種類型變量,指針本身存儲所需要的空間大小依然是4字節。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM