c/c++中各数据类型在内存中的存储方式
来源:互联网 发布:软件登记流程 编辑:程序博客网 时间:2024/06/06 02:53
基本的数据类型有:
int 4
long 4
short 2
signed char 1
unsigned char 1
unsigned long 4
unsigned short 2
float 4
double 8
基本为:
char 1字节
short 2字节
int 4字节
long 4字节
float 4字节
double 8字节
typedef struct
{
char;
char;
short ;
};
charcharshort 类型的结构体占4字节内存。
┌───┬───┐
│ char │ char │2字节
└───┴───┘
┌───┬───┐
│ short │2字节
└───┴───┘
typedef struct
{
short;
char;
char;
}
Short char char 类型的结构体占4字节内存.
┌───┬───┐
│ short │2字节
└───┴───┘
┌───┬───┐
│ char │ char │2字节
└───┴───┘
typedef struct
{
char;
short ;
char;
}csc;
Char short char 类型的结构提占6字节内存,以short 做2字节对齐
┌───┬┄┄┄┐
│ char │ null │2字节
└───┴┄┄┄┘
┌───┬───┐
│ short │2字节
└───┴───┘
┌───┬┄┄┄┐
│ char │ null │2字节
└───┴┄┄┄┘
typedef struct
{
double ;
char;
char;
char;
}
double char char char 类型的结构体占16字节内存
8字节
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ double │
└───┴───┴───┴───┴───┴───┴───┴───┘
8字节
┌───┬───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐
│ char │ char │ char │ null │
└───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘
typedef struct
{
char;
char;
double ;
char;
char;
char;
}
char char double char char 类型的结构体占24字节内存
8字节 使用2字节空余6字节
┌───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐
│ char │ char │ null │
└───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘
8字节
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ double │
└───┴───┴───┴───┴───┴───┴───┴───┘
8字节 使用3字节空余5字节
┌───┬───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐
│ char │ char │ char │ null │
└───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘
typedef struct
{
char;
int;
double;
char;
char;
char;
int;
}
char int double char char char int 类型的结构体占用24字节内存
8字节 使用2字节空余6字节
┌───┬┄┄┄┬┄┄┄┬┄┄┄┬───┬───┬───┬───┐
│ char │ null │ int │
└───┴┄┄┄┴┄┄┄┴┄┄┄┴───┴───┴───┴───┘
8字节
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ double │
└───┴───┴───┴───┴───┴───┴───┴───┘
8字节 使用3字节空余5字节
┌───┬───┬───┬┄┄┄┬───┬───┬───┬───┐
│ char │ char │ char │ null │ int │
└───┴───┴───┴┄┄┄┴───┴───┴───┴───┘
typedef struct
{
char;
short ;
int;
double ;
char;
int;
float ;
}
char short int double char int float 类型的结构体占用32字节内存
8字节 使用2字节空余6字节
┌───┬┄┄┄┬───┬───┬───┬───┬───┬───┐
│ char │ null │ short │ int │
└───┴┄┄┄┴───┴───┴───┴───┴───┴───┘
8字节
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ double │
└───┴───┴───┴───┴───┴───┴───┴───┘
8字节 使用3字节空余5字节
┌───┬┄┄┄┬┄┄┄┬┄┄┄┬───┬───┬───┬───┐
│ char │ null │ int │
└───┴┄┄┄┴┄┄┄┴┄┄┄┴───┴───┴───┴───┘
8字节 使用3字节空余5字节
┌───┬───┬───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐
│ float │ null │
└───┴───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘
对上一个结构体做位置变更,查看内存占用情况
typedef struct
{
char;
char;
short ;
int;
int;
float ;
double ;
}
经过位置变更,占用内存为24字节
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ char │ char │ short │ int │
└───┴───┴───┴───┴───┴───┴───┴───┘
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ int │ float │
└───┴───┴───┴───┴───┴───┴───┴───┘
┌───┬───┬───┬───┬───┬───┬───┬───┐
│ double │
└───┴───┴───┴───┴───┴───┴───┴───┘
typedef struct
{
short ;
char;
char;
char;
int;
}
short char char char int 类型的结构体占用12字节内存
4字节
┌───┬───┬───┬───┐
│ short │ char │ char │
└───┴───┴───┴───┘
4字节 使用1字节剩余3字节
┌───┬┄┄┄┬┄┄┄┬┄┄┄┐
│ char │ null │
└───┴┄┄┄┴┄┄┄┴┄┄┄┘
4字节
┌───┬───┬───┬───┐
│ int │
└───┴───┴───┴───┘
- c语言中各数据类型在内存中的存储方式
- c/c++中各数据类型在内存中的存储方式
- 初探c语言中各数据类型在内存中的存储方式
- C语言中各种基本数据类型在内存中的存储方式
- C语言中浮点数在内存中的存储方式
- C语言中浮点数在内存中的存储方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- java中的各种数据类型在内存中存储的方式
- ACdream1071
- Wilbur and Array
- Redis 订阅发布 原理
- 【滤波器学习笔记】一阶RC低通滤波
- HDU-1025-Constructing Roads In JGShining's Kingdom【LIS】【二分】
- c/c++中各数据类型在内存中的存储方式
- Android应用开发性能优化完全分析
- hdu5828Rikka with Sequence(线段树)
- 一致性哈希算法
- JSON Iterator 解析(含map格式)
- 用原生js模拟jquery的淡入淡出fade效果
- C#发送邮件
- poj1426 Find The Multiple
- Android分分钟教你写一个个性化的加载框