一个数组定义为 double array[3];,则这个数组占用内存的大小为( )。
这题考的是数组内存计算,关键是记住double占8字节,别被选项里的数字带偏了,直接3乘8就行。
学生最容易犯的错误是记错double的字节数,把它当成4字节(和float或int混淆),这样算出来就是12,正好掉进B选项的坑;或者完全忽略数据类型,只数元素个数3,选D;更有甚者以为double是2字节,算出6选C。命题人就是利用这些模糊记忆来挖坑,所以必须把double=8字节这个常识刻在脑子里。
【考点】double类型存储大小|数组内存计算|sizeof操作符
考纲定位:GESP三级C++属于基础语法模块,重点考数据类型和内存概念。命题人放这道题,就是卡住那些以为数组内存只和元素个数有关、忽略每个元素实际占用的存储大小的考生。他们可能只背了“数组内存=元素个数×1”,或者混淆了int和double的字节数。所以定位要指出考点在三级大纲里,以及命题人想考哪个弱点。
解题思维:看到题先想double占几个byte,这是常识(8字节)。然后数组有3个元素,内存=3×8=24。通法:任何数组内存=元素个数×每个元素占用的字节数。对于其他类型(int 4字节、char 1字节、float 4字节)同样适用。所以这里要强调double的存储大小,以及乘法计算。
陷阱拆解:选项B 12是double占4字节(和float或int混淆),选项C 6是double占2字节(可能误以为double是2字节),选项D 3是只数元素个数。命题人利用的错误认知:以为double和int一样4字节,或者以为double是2字节。最阴险的细节是“double”这个词,很多初学者只知道double比int大,但具体大多少不记得。所以只要背结论不记原理,就会选错。
反命题思维:命题人如果想考更复杂,可能会把数组改成二维,或者问“数组起始地址偏移量”,或者结合指针。比如改成double *p = array;问p占多少内存,或者问sizeof(array)是多少,答案还是24。这样就能区分是否真正理解数组内存和指针的区别。所以提醒刷到类似题时先问“命题人想考我什么”,是考察数据类型存储还是考察数组内存计算。
考频趋势:从题库数据看,基础类型相关题目在GESP三级中占比很高,2023年考了63题,2024年34题,2025年26题,2026年119题,说明这类考点热度持续上升,尤其是2026年爆发性增长,可能意味着后续会更多考察细微的数据类型差异。而数组内存计算作为基础中的基础,几乎每年必考,2023年三级考了215题,其中这类题目占相当比例。
预测:基于2026年基础类型考题激增的趋势,未来GESP三级可能会更多出现类似“double vs float”“char vs int”的对比题,甚至结合指针或数组多维情况综合考查。暂无足够依据预测是否会出现更复杂的内存布局题,但建议提前准备。
答案:A. 24(3×8=24)