在 C++ 语言中,一个函数没有被调用时,它的参数不占用内存。
这道题考的是C++函数参数内存分配机制。拿到题先想:参数什么时候占内存?答:只有函数被调用、栈帧建立时才会占用。既然没调用,自然不占,直接选A。
很多学生容易把'参数定义了'和'参数占内存'混为一谈,以为源码里写了参数就算占空间。命题人就是卡在这个点上——定义是编译期静态分配,而参数是运行期动态分配。另一个坑是默认参数,学生可能误以为默认参数会占用内存,其实默认参数只是函数定义时的语法糖,真正占内存还得看调用。
本题考查C++语言中函数参数的内存分配机制,属于运行时内存分配范畴。关键在于区分'定义'与'调用':参数在函数定义时只是语法元素,真正占用栈空间是在函数被调用、建立栈帧时。
GESP四级常考这种概念辨析题,命题人故意用'没有被调用时'这个条件制造陷阱——很多学生只背过'函数参数在栈上',却忽略了前提:必须进入运行期。这道题就是卡住那些只记结论不记过程的考生。