char c [] = {'J','K','W'};为什么printf(“%s”,c)打印“ JKWJKW”?

时间:2019-09-12 21:10:34

标签: c

c代码的部分如下:

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

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

1 个答案:

答案 0 :(得分:6)

不相等:您忘记了终止零。它存在于“ JKW”中,但不在数组初始化器中。至于为什么两次打印“ JKW”?通过不以零结尾的字符串,您偶然发现了未定义的行为。此时,您的代码几乎可以执行任何操作。