一、结构体所占内存:
示例程序:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
//普通结构体
typedef struct Stu {
int a;
float b;
};
//结点结构体
typedef struct Node {
int a;
float b;
Node *next;
};
int main() {
printf("int所占内存sizeof(int)=%d\n",sizeof(int));
printf("float所占内存sizeof(float)=%d\n", sizeof(float));
printf("普通结构体所占内存sizeof(Stu)=%d\n", sizeof(Stu));
Node *Pnode, *Pnode1;
Pnode = (Node *)malloc(sizeof(Node));
printf("Pnode所占内存为:%d\n",sizeof(Node));
return 0;
}
运行结果:
指针变量占4个字节! 32位系统中
指针变量根据“基类型”的不同有 int * 型,float * 型,double * 型,char * 型等
int 型变量占用 4 字节,float型变量占用 4 字节,double类型变量占用 8字节,char类型占用 1 字节。
那么“指针变量”占多少字节呢?是不是基类型占用多少字节,该变量就占用多少字节呢?同样,用sizeof写一个程序看一下就知道了。
#include<stdio.h>
int main(void)
{
int *a = NULL;
float *b = NULL;
double *c = NULL;
char *d = NULL;
printf("%d %d %d %d\n", sizeof(a), sizeof(b), sizeof(c), sizeof(d));
return 0;
}
运算结果:
二、链表