【发布时间】:2013-10-09 21:42:39
【问题描述】:
我正在制作一个基本的字符串程序并做到了这一点。有这样一个字符串:
#include<stdio.h>
int main()
{
char str[7]="network";
printf("%s",str);
return 0;
}
它打印network。在我看来,它不应该打印网络。应该打印一些垃圾值,因为'\0' 没有结束这个字符数组。那么它是如何打印出来的呢?也没有警告或错误。
【问题讨论】:
-
你很幸运,当你打印
str时,"network"提供的'\0'没有被其他任何东西覆盖。 -
我不会这么快就接受答案。没有一个答案能真正解决您的问题。
-
在 c++ 中,字符串数组必须比字符总数大一,但在 c 中,情况并非如此。