下列关于 C++ 语言中指针的叙述,不正确的是( )。
直接验证每个选项的语法合法性。C++里指针必须带类型名,但void是个特殊的‘万能’类型,专门用来在不知道具体类型时存地址。只要记住void*是合法的,就能一眼排除D。
很多学生把‘void指针不能直接解引用’等同于‘void指针类型不存在’,看到D选项后半句‘那没有意义’就慌了,顺手选了D。其实void*存地址完全有意义,只是存进去后不能直接取值,得先强转成具体类型。命题人就是利用这个‘能存不能读’的模糊地带挖坑。
【考点】指针与类型系统|用户自定义类型|void指针的本质
1. 考纲定位:C++标准明确规定,指针变量的定义必须包含类型名。命题人专挑学生‘以为void*不存在’的盲区,用绝对化表述‘不能定义’卡住对指针类型本质的理解,同时借后半句‘那没有意义’制造语义陷阱。
2. 解题思维:逐项验证语法合法性。 A选项int* p;合法,指向int; B选项struct MyStruct* p;合法,指向自定义结构体; C选项结构体成员int* ptr;合法,结构体可以含指针; D选项void* p;语法完全合法。既然所有选项都能定义指针,那声称‘不能定义’的D就是错误选项。
3. 陷阱拆解:D选项的阴险之处在于‘那没有意义’的补充说明。命题人利用两个误区:一是把‘void指针不能直接解引用’偷换成‘void指针类型不存在’,二是把‘void*只能作为函数参数/返回类型’偷换成‘void*没有实际用途’。如果你只背了‘void指针不能解引用’这条结论,就会误以为‘void指针类型无效’,从而掉进这个陷阱。
4. 反命题思维:如果把D选项改成‘void指针不能解引用’,那答案就是D了;如果把D改成‘void指针不能用于函数参数’,答案就是A。刷到任何关于void指针的选择题,先问自己‘命题人想考的是类型存在性问题,还是解引用规则问题’,就能快速锁定考点。
5. 考频趋势:指针与内存是GESP历年高频考点,题库共考过77题,覆盖6个级别。其中2023年考了13题,2024年17题,2025年25题,2026年16题,呈现逐年升温态势,且四级占比17题,是四级必考内容。指针与引用考了99题,四级24题,同样高占比。动态内存分配四级17题,也是四级重头戏。
6. 预测:鉴于2023-2026年指针类题目数量持续攀升(尤其2025年达25题),且四级占比较大,未来四级考试中,关于void指针、空指针、指针运算等概念辨析的单选题仍将是命题热点,大概率会继续以‘绝对化表述’挖坑。暂无足够依据预测具体题型变化,但‘概念辨析+陷阱表述’的模式短期内不会变。