加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 1.结构体的大小怎么计算
    • 2.结构体与数组的区别
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

结构体的大小怎么计算 结构体与数组的区别

2022/02/22
1012
阅读需 2 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

结构体和数组是C语言中两个重要的数据类型。虽然它们都可以存储多个数据,但它们之间还是存在一些差异的。

1.结构体的大小怎么计算

在C语言中,结构体的大小是由它的成员变量的大小累加而来的。不过,有些编译器会对结构体进行对齐处理,以保证各成员变量在内存中的地址是整数倍。具体的计算方法可以参考下面的示例:

struct Example {  char c;  int i;  double d;};// sizeof(struct Example) = 24    

在上面的示例中,因为char占1字节、int占4字节、double占8字节,所以结构体Example的大小是1+4+8=13字节。但是,在GCC编译器中,结构体Example被对齐到了8字节的边界上,因此它的大小变成了24字节。

2.结构体与数组的区别

虽然结构体和数组都可以存储多个数据,但它们之间还是存在一些差异的。

首先,数组中的每个元素在内存中是连续存放的,而结构体中的成员变量则可能出现“空隙”,这是由编译器进行对齐处理导致的。

其次,数组中的元素的类型都是相同的,而结构体中不同成员变量的类型可以不同。

最后,在C语言中,可以使用下标方式(例如a[0]、a[1])来访问数组中的元素,而要访问结构体中的某个成员变量,则需要使用“.”或“->”运算符。

相关推荐

电子产业图谱