问题 单项选择题

给定C语言的数据结构

假设char类型变量的存储区大小是1字节,int类型变量的存储区大小是4字节,double类型变量的存储区大小是8字节,则在不考虑字对齐方式的情况下,为存储一个struct T类型变量而需要的存储区域至少应为()字节。

A.4

B.8

C.12

D.17

答案

参考答案:C

解析:

本题考查C语言基础知识。

声明一个结构体类型的一般形式为

struct结构体名

{成员表列};

其中“结构体名”用作结构体类型的标志(structure tag)。大括号内是该结构体中的各个成员,由它们组成一个结构体。

结构体struct T成员表列包含:int w和union T。在不考虑字对齐的情况下,C语言中一个结构体变量的存储区大小是其所有成员存储区大小之和,一个联合体变量的存储区大小是其各成员所需存储区大小中最大值。

根据题意,联合体union T变量需要的存储区大小是8字节。struct T类型变量的存储区最小应为12字节。

单项选择题
问答题 论述题