MST

星途 面试题库

面试题:C++中sizeof运算符在结构体中的应用

假设有如下结构体:struct MyStruct { int a; char b; short c; }; 请说明 sizeof(MyStruct) 的值是多少,并解释为什么。
29.1万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. sizeof(MyStruct)的值
    • sizeof(MyStruct)的值通常为8。
  2. 原因
    • int类型一般占用4个字节(在常见的32位和64位系统中)。
    • char类型占用1个字节。
    • short类型一般占用2个字节。
    • 但是,由于结构体存在内存对齐机制,以提高内存访问效率。结构体的大小要满足其最大成员类型大小的整数倍。这里int类型大小为4字节,是最大的成员类型大小。所以结构体总大小需要是4的整数倍。int a占4字节,char b占1字节,short c占2字节,4 + 1+ 2 = 7字节,为了满足4的整数倍,需要填充1字节,所以最终sizeof(MyStruct)为8字节。