以下语句定义的变量占用 1 字节内存的是( )。
这题考的是基本数据类型的大小。拿到题先别急着看选项,脑子里过一遍:int 是 4 字节,double 是 8 字节,char 是 1 字节。关键要分清‘变量类型’和‘赋值内容’,bool 是 C++ 里唯一明确占 1 字节的基础类型,直接锁定 C。
最容易掉进 B 选项的坑:看到赋的是字符' b'就以为占 1 字节,其实变量声明是 int,编译器会把字符转成整数再存,占 4 字节。其次是误以为 int 占 1 字节,或者把 bool 当成 char 去记。
【考点】C++ 基本数据类型与内存占用。命题人专盯考生对 int、bool、double 等类型大小的死记硬背——二级阶段 80% 考生会误以为 int 也是 1 字节,根本看不出 bool 才是唯一 1 字节。
看到题先想‘变量类型决定内存大小’,逐个核对: 1. int a = 1;:int 至少占 4 字节,A 排除。 2. int b = 'b';:陷阱在于‘字符常量’和‘变量类型’的偷换概念。虽然赋的值是字符,但变量声明是 int,编译器会先转成整数再存,实际占 4 字节,B 排除。 3. bool c = true;:bool 是 C++ 里唯一明确占 1 字节的基础类型,C 正确。 4. double d = 1.0;:double 占 8 字节,D 排除。
最阴险细节:选项 B 写的是 int b = 'b',命题人利用‘字符常量’和‘变量类型’的偷换概念,让你误以为占 1 字节。如果把 double 改成 float,float 占 4 字节,那正确答案就变成 B;如果把 bool 改成 char,那 C 和 B 都占 1 字节,题目就没唯一答案了。
通法:GESP 二级考内存大小,永远记住 8 种基本类型里,只有 bool 和 char 是 1 字节,int 起步 4 字节。刷到这类题先问‘命题人想考我哪个类型的内存大小’,别被表面符号迷惑。