c代码的部分如下:
char c[] = {'J', 'K', 'W'};
printf("%s\n", c);
我不知道为什么它打印“ JKWJKW”而不是“ JKW”。
char c[] = {'J', 'K', 'W'}
等于char c[] = "JKW"
吗?
答案 0 :(得分:6)
不相等:您忘记了终止零。它存在于“ JKW”中,但不在数组初始化器中。至于为什么两次打印“ JKW”?通过不以零结尾的字符串,您偶然发现了未定义的行为。此时,您的代码几乎可以执行任何操作。