【发布时间】:2012-06-27 08:53:52
【问题描述】:
如果我写:
char lili [3];
cout<<strlen(lili)<<endl;
那么打印出来的是:11
但如果我写:
char lili [3];
lili [3]='\0';
cout<<strlen(lili)<<endl;
然后我得到 3。
我不明白为什么它在第一部分返回 11?
strlen 不应该返回 3,因为我为 lili 分配了 3 个字符?
【问题讨论】:
-
垃圾进,垃圾出。正如答案所解释的,如果您将不合理的输入传递给函数,您可能会得到不合理的输出。