MST

星途 面试题库

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

假设有如下结构体定义:struct { int a; char b; short c; } myStruct; 请分析 sizeof(myStruct) 的值,并解释原因。
32.8万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. sizeof(myStruct)的值
    • 在常见的32位和64位系统中,sizeof(myStruct)的值通常为8。
  2. 原因
    • 结构体存在内存对齐现象。在一般情况下(假设默认对齐方式):
      • int类型通常占4个字节。
      • char类型占1个字节。
      • short类型通常占2个字节。
      • 对于结构体myStructa占4个字节。b占1个字节,但由于内存对齐,b后面会填充3个字节,以满足c的对齐要求(short通常要求2字节对齐)。c占2个字节。
      • 所以sizeof(myStruct)4 + 1 + 3+ 2 = 8字节。