定义字符数组 char str[20] = {'G', 'E', 'S', 'P'};,则 str 的字符串长度为( )。
这题考字符数组和字符串长度的区别。拿到题先别被 str[20] 吓到,数初始化列表里有多少个字符,再看有没有末尾的\0。
最容易选 D,把数组声明的长度当成字符串长度;或者选 C,以为\0 会占一格把长度减一。其实这里没\0,有效字符就是 4 个,字符串长度就是 4。
GESP 三级《C++ 程序设计》第 2 章“数组”模块。命题人专门卡住“数组大小≠字符串长度”这个认知断层——90% 考生看到 str[20] 就条件反射选 D,却忘了字符串长度由内容决定而非容器大小。