#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;
}
node
注:無論指針指向哪一種類型變量,指針自己存儲所須要的空間大小依然是4字節。指針