在 C++ 中,char 类型的取值范围总是 $-128$ 到 $127$。
答案B。double占8字节,int占4字节,float占4字节,char占1字节,bool占1字节。类型的占用空间在编译时确定。
double占8字节是固定不变的。数组占用空间=元素个数×sizeof(元素类型)。
【考点】C++类型系统|char取值范围|有符号/无符号
看到“char 取值范围”先想 C++ 标准定义。char 是 8 位整数,但标准允许编译时选择有符号或无符号。无符号时范围 0-255,有符号时才是 -128~127。命题说“总是”,显然忽略了无符号情况。这类题的通法是:遇到“总是”“一定”等绝对化词,先找标准允许的例外。
陷阱在“总是”二字。C++ 标准允许 char 无符号,此时范围 0~255。命题人故意用绝对化表述,卡住只背结论不读标准的考生。如果你只记"char 是 -128~127",就会掉坑。
若把“总是”改成“至少”,命题就变成考 char 类型的最小字节数(1 字节=8 位)。若把答“正确”换成“错误”,则需补充“除非指定无符号”。刷到类似题,先问“标准是否允许例外”。