首页 > 试题广场 >

在 C 语言中有如下声明:char color = ‘B’;

[单选题]

在 C 语言中有如下声明:char color = ‘B’; 请问’B’和color分别占()内存。

  • 1字节、1字节
  • 1字节、2字节
  • 2字节、1字节
  • 2字节、2字节
这个题的核心是理解C 语言中字符变量和字符常量的内存占用规则,我拆分解释下:

1. 关于color(char 类型变量)

C 语言中,char类型的标准内存占用是 1 字节(这是 C 标准规定的基础类型大小),所以char color变量本身占 1 字节。

2. 关于'B'(字符常量)

这里是容易混淆的点:C 语言中,字符常量(比如'B')的本质是int类型(而非char类型)。
  • 从 “实际存储” 看:'B'对应的 ASCII 码是 66,只需要 1 字节就能存下,但它的编译时类型是int,所以在内存中会占用int的大小(通常是 2 或 4 字节)。
  • 但题目考察的是 “实际有效占用”:因为'B'的有效数据只有 1 字节(ASCII 码),且最终要赋值给char变量(占 1 字节),所以题目中默认按 “有效占用 1 字节” 来判定。
所以'B'和color都占 1 字节,对应选项 A。
发表于 2025-12-03 10:11:41 回复(0)