关于字符串和字符数组,下列说法正确的是( )。
- A. char str[] = "GESP"; int len1 = sizeof(str); int len2 = strlen(str); —— 程序能正确执行,且 len1 与 len2 相等
- B. char str1[4] = "GESP"; char str2[4] = {'G','E','S','P'}; —— 这段程序将能够正确执行
- C. char str2[4] = {'G','E','S','P'}; strcpy(str2, "HELLO,GESP"); cout << str2; —— 即使能运行,也存在覆盖数组以外内存空间的行为,可能引起严重错误
- D. char dest[4] = {'G','E','S','P'}; char src[] = "HELLO"; strcat(dest, src); cout << dest; —— 程序能正确执行,不存在数组越界行为
正确答案:C