C语言小记:结构体及其在内存中的储存形式

编程入门 行业动态 更新时间:2024-10-27 02:25:47

C语言<a href=https://www.elefans.com/category/jswz/34/1764832.html style=小记:结构体及其在内存中的储存形式"/>

C语言小记:结构体及其在内存中的储存形式

C语言小记:结构体及其在内存中的储存形式

1.结构体

  • 结构体的作用:自定义一个包含多种不同数据类型的变量。

  • 语法:

    struct 结构体名称
    {结构体成员1;结构体成员2;结构体成员3;...
    }

     

  • 定义结构体变量:

    include<stdio.h>struct RCC//声明一个结构体类型RCC,其中有两个char类型变量,一个int类型变量。
    {char cr;char cfgr;int cf;
    };int main(void)
    {struct RCC rcc;//定义一个结构体变量rcc.return 0;
    }

2.结构体变量的在内存中的存储形式:

首先我们来运行一段代码

#include<stdio.h>int main(void)
{struct RCC{char cr;char cfgr;int cf;};struct RCC rcc = {'q','w',48};printf("  cr的地址:%p\n",&rcc.cr);printf("cfgr的地址:%p\n",&rcc.cfgr);printf("  cf的地址:%p\n",&rcc.cf);return 0; } 

运行结果

 观察运行发现rcc.cr的地址再000000000062FE10,rcc.cfgr的地址在000000000062FE11,rcc.cf的地址在000000000062FE14。这是由于C语言在储存结构体中不同类型的数据结构时,会以4个字节为一个单元进行存储,当四个字节容纳不下下一个类型的数据时,C语言编译器会将这个单元中没有存放数据的剩余内存空下,转而存放在下一个单元中。如图2所示。

图2

所以,为了节省内存空间,在声明结构体时,尽量合理摆放结构体中各个变量标识符的先后顺序,合理利用内存空间。 

3.结构体的地址

结构体变量的地址=结构体第一个成员的地址,如图3

代码:

#include<stdio.h>int main(void)
{struct RCC{char cr;char cfgr;int cf;}rcc = {'q','w',48};printf("   rcc的地址:%p\n",&rcc);printf("rcc.cr的地址:%p\n",&rcc.cr);return 0; }

 

作者声明:文章原创不易,转载引用请声明出处。

更多推荐

C语言小记:结构体及其在内存中的储存形式

本文发布于:2023-06-25 17:21:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/881909.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小记   形式   内存   语言   结构

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!