64位操作系统,不同类型变量对应的字节数为:
char : 1个字节
char*(即指针变量) : 8个字节    //32位占4个字节
short int : 2个字节
int : 4个字节
unsigned int : 4个字节
float : 4个字节
double : 8个字节
long : 8个字节    //32位占4个字节
long long : 8个字节
unsigned long : 8个字节    //32位占4个字节

解析:

64位系统在内存管理方面遵循8字节对齐,原则:在8字节对齐的情况下,按8个字节为单位分配存储空间,如果不足,会自动补充,本次分配不足以存放下面的变量时,会重新分配空间。
structA{unsigned int a; //对于开始连续的第一个8字节内存,a占4字节 char b[2];      //b[]占1*2字节,在a后的连续2字节内存放,还剩2个字节,double c;       //c占8字节,第一个8字节还剩2字节不足以存放c,自动补充该2字节。并同时开辟第二个8字节内存存放cshort d;        //d占2字节,开辟第三个8字节,存放d。剩余的6个字节补齐。故总共开辟了8*3=24字节存放该数据结构
}

  

转载于:https://www.cnblogs.com/lca1826/p/6617094.html

[C/C++] 结构体存储问题相关推荐

  1. [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝...

    一.结构体存储 #include<stdio.h> #include<stdlib.h>struct info{char c; //1 2 4 8 double num; // ...

  2. C语言结构体存储空间分配的原则

    C语言结构体存储空间分配的原则 我们在嵌入式编程中经常用到结构体,结构体内成员变量的声明顺序不同,会带来结构体整体存储空间大小的不同,这是因为在C语言里,结构体里元素存储要对齐,这个"对齐& ...

  3. C语言 结构体存储空间分配

    这两天在看结构体,一直在琢磨结构体的存储空间分配的问题,琢磨了半天总算明白了.和大家分享一下,希望能有所帮助. 相信大家都知道结构体里元素存储要对齐吧,话虽是没错,只是这个"对齐" ...

  4. 【算法笔记2.8】完成一个对候选人得票的统计程序。假设有3个候选人,名字分别为Li,Zhang和Fun。使用结构体存储每一个候选人的名字和得票数。记录每一张选票的得票人名,输出每个候选人最终的得票数。

    考点:结构体,字符串 题目:完成一个对候选人得票的统计程序.假设有3个候选人,名字分别为Li,Zhang和Fun.使用结构体存储每一个候选人的名字和得票数.记录每一张选票的得票人名,输出每个候选人最终 ...

  5. c语言将结构体存储在数组中,结构体数组方法用法 _C语言-w3school教程

    C语言 的 结构体数组 在C语言编程中可以将一系列结构体来存储不同数据类型的许多信息. 结构体数组也称为结构的集合. 我们来看一个数组结构体的例子,存储5位学生的信息并打印出来.创建一个源文件:str ...

  6. 结构体存储学生信息(键盘输入)计算总分并降序排序

    ##按照如下格式定义一个结构体类型,并定义一个这种类型的数组存储一个班级的学生成绩信息,从键盘输入学生的个人信息和成绩(不包括总分),通过公式"总分=数学+英语+政治"计算每个同学 ...

  7. 结构体存储的有理数加减乘除

    有理数的加减乘除运算 我们知道,有理数和无理数是两个相对的概念.我对有理数的理解即分数.当然这里的分母不能为0,要考虑排除这种情况. 首先定义一个结构体用于存储分子分母. typedef struct ...

  8. C语言使用结构体存储学生成绩信息

    #include<stdio.h> typedef struct date {int year;int month;int day; }DATE; typedef struct stude ...

  9. C中结构体的存储分配

    对于C语言中结构体所占的存储空间的大小,也一直是笔试面试的常客,今天好好看了一下这方面,以前一直以为很清楚了,今天通过各种实际测试举例,发现原来还是没有搞透彻,好在现在是彻底懂了,所以和大家分享,希望 ...

  10. linux查看内存条pn,实验:使用GDB查看结构体在内存中的存储方式

    结构体在内存中的表示形式是怎么样的? 结构体在内存中和普通变量存储没有太大的区别. 首先我们看看,计算机如何读取普通变量:   普通变量例如int是占据4个字节,计算机读内存的时候会从起始地址开始读, ...

最新文章

  1. (三)WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理(核心)
  2. 人类又双叒叕输了,就没人能管管这条“狗”吗?
  3. mysql 二十条记录_记 MySQL优化 20条
  4. 筱玛爱游戏——线性基
  5. IIS7.0 部署wcf 404或者配置MIME(转)
  6. Visual Studio2017 远程调试 Remote Debugger
  7. springboot接收get和post请求参数
  8. 使用Origin Pro2021画简单函数图像
  9. 超轻简洁个人引导页网站源码
  10. Java高并发编程详解系列-ThreadGroup介绍
  11. c语言-实现九九乘法表
  12. 暴风转码转超清文件_暴风影音16破解版下载-暴风影音16多开精简版(附怎么用) v9.4.1029.1111...
  13. 出大问题!苹果硅或许意味着Wintel时代的终结……
  14. 大数据下的精准实时监控系统 | Promethus or Zabbix?
  15. 模拟简单 LeetCode6070. 计算字符串的数字和
  16. 襄阳教育云平台实名认证_襄阳教育云平台登录入口-襄阳教育云平台2020最新学习app4.1.6下载_飞翔下载...
  17. (转载)Linux内核源代码情景分析---第四章 进程与进程调度
  18. conda中的CUDA和自己安装的CUDA的区别
  19. 【汇编语言学习】汇编语言基础(一)
  20. 新浪服务器显示蓝屏05c代码,互联网学问:蓝屏代码0x00000050的原因及解决方法...

热门文章

  1. tar命令压缩和解压缩
  2. httpclient请求配置dns绑定host
  3. python getopt使用_如何使用getopt.getoptpython中的方法?
  4. 路由器接口为啥不能配置为任意播地址_计算机三级网络技术(7):路由器配置及使用(下)...
  5. 【渝粤教育】国家开放大学2018年秋季 1174t水工钢筋混凝土结构(本) 参考试题
  6. 你必须掌握的Python数据分析工具之Pandas
  7. Linux 系统性能分析工具图解读
  8. BZOJ3527 推出卷积公式FFT求值
  9. 【ZOJ 4070】Function and Function
  10. 如何调用npm已经安装在全局位置的模块