栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C提高day05

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C提高day05

结构体数组赋值,和二维数组赋值类似,可以{{},{}};、也可以{,,,}。

两者等价,q[i].stu 与 (q+i)->stu

浅拷贝和深拷贝,发生在结构体内嵌套了指针,且动态分配空间时

        浅拷贝,eg:不同结构体变量中的同类型成员,一起指向一个内存区域,易发生重复释放(free())

        深拷贝,eg:再开辟一块内存区域,并重新拷贝一份,不同结构体变量中的同类型成员,虽然值相同,却指向不同的内存区域

结构体字节对齐规则,默认以结构体中最长的类型为对齐单位(基准),依次按顺序存放(不能乱序存放)

        结构体嵌套结构体时,当轮到被嵌套进去的那个结构体类型时,无论如何,都另起一行(行的字节长度即为基准)

可以指定对齐单位,#pragma pack(2)——指定对齐单位为2个字节,必须是2的n次方

        如果小于最长的成员,最长的成员就分行放,eg:#pragma pack(2),int类型,一行放2个字节

        如果大于最长的成员,系统机智的按照默认来,以节省空间

不完整类型的字节对齐,eg:

struct A

{

    int     a1:5;

    int     a2:9;

    char    c;

    int     b:4;

    short   s;

}A;

        若两位域字段的类型相同,且相邻位域的位宽之和小于该类型的sizeof大小,则后者与前者紧邻存储

        若两位域字段的类型相同,相邻位域的位宽之和大于该类型的sizeof大小,则另起一行

        若两位域字段的类型不同,VC6采取不压缩方式,Dev-C++和gcc采取压缩方式

        如果两位域字段之间穿插着非位域字段,则不进行压缩

        

        整个结构体的总大小,为最宽基本类型成员大小的整数倍(这是该类大问题的一个共性)

        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322346.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号