初探c语言中各数据类型在内存中的存储方式
来源:互联网 发布:淘宝售后客服在哪里 编辑:程序博客网 时间:2024/06/10 09:01
基本的数据类型有:
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中的各种数据类型在内存中存储的方式
- 验证码生成并传入session中
- ubuntu安装单机版mpich
- samba服务器实现ubuntu和windows之间共享
- iOS 7状态栏的管理
- SpringMVC文件上传
- 初探c语言中各数据类型在内存中的存储方式
- hdu 1978 How many ways(dp)
- 【iOS-cocos2d-X 游戏开发之一】在Mac下结合Xcode搭建Cocos2d-X开发环境!
- 为什么你没有赶上互联网和移动互联?
- python 连接 MongoDB
- 如何使用安卓变声电话软件实现边变声边通话
- 从一款手游的思路分析用户需求
- 恢复db_recovery_file_dest_size参数为默认值“0”方法
- c++ STL中map用法 --2014-04-03 21:24