#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字节。指针