问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

”结构体定义时,结构体本身并不占用存储空间,系统并不给结构体分配存储空间。“这句话是对的吗?

发布网友 发布时间:2022-03-30 06:50

我来回答

2个回答

热心网友 时间:2022-03-30 08:19

对的,结构体类型的定义只是告诉编译器该如何表示数据,但是它没有让计算机为其分配空间。结构体类型的定义就是结构体的声明,不管是定义还是申明,这句话都是正确的。

只有在结构体变量,声明的时候可以分配。要使用结构体,那么就需要创建变量,也就是结构体变量。

创建一个结构体变量:struct book library

看到这条指令,编译器才会创建一个结构体变量library,此时编译器才会按照book模板为该变量分配内存空间,并且这里存储空间都是以这个变量结合在一起的。

同时后面访问结构体变量成员的时候,就要用到结构体变量名来访问。

扩展资料:

结构体的大小通常是结构体所含变量大小的总和,但是对于结构体中比较小的成员,可能会被强行对齐,造成空间的空置,这和读取内存的机制有关,为了效率。

通常32位机按4字节对齐,小于的都当4字节,有连续小于4字节的,等到凑整,加上下一个元素超出一个对齐位置,才开始调整,比如3+2或者1+4,后者都需要另起(下边的结构体大小是8bytes)。

struct s  

{  

char a;  

short b;  

int c;  

}  

相应的,64位机按8字节对齐。

不过对齐不是绝对的,用#pragma pack()可以修改对齐,如果改成1,结构体大小就是成员变量大小的总和。

参考资料来源:百度百科--结构体

热心网友 时间:2022-03-30 09:37

要想知道在何时分配内存空间,首先要知道,定义和声明的含义。定义就是具有以下明确的格式,如:连接说明符 类型说明符 变量名;而声明则比较复杂,声明包括类型的声明,变量的声明等等
而定义一个结构体一般是不分配内存,声明一个结构体变量是分配内存的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见陌生女人在水里生下男孩,男孩很聪明,但是陌生女人夫妇把男孩当女... oppohd通话怎么关掉 oppohd通话如何关掉 华为手机密码忘记了如何解锁? 某校高一化学研究性学习小组对日常生活中的氯气用途进行了调查,了解到... 怎样使用微软的传输助手进行文件打印? 苏氏宗祠地址在哪里? 苏圩镇苏氏宗祠 苏氏祠堂广西南宁市江南区苏氏祠堂 关于秋梅的诗句有哪些? 晃晃麻将玩法介绍 怎样办跨省无犯罪记录证明,能在网上办理吗? 网上怎么开无违法犯罪记录证明 无犯罪记录证明可以网上办理吗 陕西榆林定边县手机上怎么开无犯罪证明 网上开无犯罪记录证明流程 西安无犯罪证明怎么开 在网上怎么申请办理无犯罪记录的证明? 无犯罪证明网上申请流程是怎样的? 怎么网上办理无犯罪记录证明 非常简单C语言,关于结构体定义 微信里的链接,提示要分享到朋友圈或者转发才能看到内容是怎么设置的? 微信6.0怎么设置群组.我发朋友圈可以选谁能看谁不能看 note2 怎么把朋友圈的微信内容转发给指定的人 微信朋友圈如何设置只让群组看到? 如何将微信朋友圈的内容发送到群里面 微信未来还会增加什么功能? 微信可以一键转发朋友圈吗? 微信的朋友圈消息怎么设置指定群组不可见? 想把朋友圈里的内容转发为什么选择不上群 空调显示5e是什么意思?怎么解决 变频空调显示5E是什么意思 空调显示5e是什么意思 空调一直调5e状态,好吗? 空调显示屏出现5e是何缘故 可以用ipad连接手机来恢复删除的微信聊天记录吗 ipad微信的聊天记录删除了怎么恢复 苹果平板微信聊天记录删除了怎么恢复 ipad的微信聊天记录删除了怎么恢复 百度 经验 如何恢复ipad上的微信聊天记录 微信聊天记录删除了怎么恢复ipad ipad不小心删掉了微信聊天记录怎么恢复 ipad怎么恢复微信聊 苹果ipad上微信聊天记录怎么恢复 ipad的微信聊天记录怎么恢复 ipad恢复微信聊天记录怎么恢复 ipad上微信记录删除怎么恢复 ipad重装微信,怎样恢复聊天记录 微信记录丢失了,ipad上的,怎么找回? 苹果ipad微信聊天记录删除了怎么恢复