c代码部分如下:

char c[] = {'J', 'K', 'W'};
printf("%s\n", c);

我不知道为什么它会打印“JKW JKW”而不是“JKW”。
难道char c[] = {'J', 'K', 'W'}不等于char c[] = "JKW"吗?

最佳答案

它不相等:你忘记了终止零它出现在“JKW”中,但不在数组初始值设定项中为什么要印两次“JKW”通过不为零终止字符串,您偶然发现了未定义的行为在这一点上,你的代码几乎可以做任何事情。

10-08 05:22