您好,欢迎来到划驼旅游。
搜索
您的当前位置:首页c语言中各数据类型在内存中的存储方式

c语言中各数据类型在内存中的存储方式

来源:划驼旅游
c语言中各数据类型在内存中的存储方式 基本的数据类型有: 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字节

typedefstruct {

char ; char ; short ; };

charcharshort 类型的结构体占4字节内存。 ┌───┬───┐

│ char │ char │2字节 └───┴───┘ ┌───┬───┐

│ short │2字节 └───┴───┘

typedefstruct {

short; char; char; }

Short char char 类型的结构体占4字节内存. ┌───┬───┐

│ short │2字节

└───┴───┘ ┌───┬───┐

│ char │ char │2字节 └───┴───┘ typedefstruct {

char ; short ; char ; }csc;

Char short char 类型的结构提占6字节内存,以short 做2字节对齐 ┌───┬┄┄┄┐

│ char │ null │2字节 └───┴┄┄┄┘ ┌───┬───┐

│ short │2字节 └───┴───┘ ┌───┬┄┄┄┐

│ char │ null │2字节 └───┴┄┄┄┘

typedefstruct {

double ; char ; char ; char ; }

double char charchar 类型的结构体占16字节内存 8字节

┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘ 8字节

┌───┬───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐ │ char │ char │ char │ null │ └───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘

typedefstruct {

char ; char ; double ; char ;

char ; char ; }

char chardouble char char 类型的结构体占24字节内存 8字节 使用2字节空余6字节

┌───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐ │ char │ char │ null │ └───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘ 8字节

┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘ 8字节 使用3字节空余5字节

┌───┬───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐ │ char │ char │ char │ null │ └───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘

typedefstruct {

char ; int ; double; char ; char ; char ; int ; }

char int double char charcharint 类型的结构体占用24字节内存 8字节 使用2字节空余6字节

┌───┬┄┄┄┬┄┄┄┬┄┄┄┬───┬───┬───┬───┐ │ char │ null │ int │ └───┴┄┄┄┴┄┄┄┴┄┄┄┴───┴───┴───┴───┘ 8字节

┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘ 8字节 使用3字节空余5字节

┌───┬───┬───┬┄┄┄┬───┬───┬───┬───┐ │ char │ char │ char │ null │ int │ └───┴───┴───┴┄┄┄┴───┴───┴───┴───┘ typedefstruct {

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 │ └───┴───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘ 对上一个结构体做位置变更,查看内存占用情况 typedefstruct {

char ; char ; short ; int ; int ; float ; double ; }

经过位置变更,占用内存为24字节

┌───┬───┬───┬───┬───┬───┬───┬───┐ │ char │ char │ short │ int │ └───┴───┴───┴───┴───┴───┴───┴───┘

┌───┬───┬───┬───┬───┬───┬───┬───┐ │ int │ float │ └───┴───┴───┴───┴───┴───┴───┴───┘

┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘

typedefstruct {

short ; char ; char ; char ; int ; }

short char charcharint 类型的结构体占用12字节内存 4字节

┌───┬───┬───┬───┐ │ short │ char │ char │ └───┴───┴───┴───┘ 4字节 使用1字节剩余3字节

┌───┬┄┄┄┬┄┄┄┬┄┄┄┐ │ char │ null │ └───┴┄┄┄┴┄┄┄┴┄┄┄┘ 4字节

┌───┬───┬───┬───┐ │ int │ └───┴───┴───┴───┘

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务