当前位置:  开发笔记 > 编程语言 > 正文

为什么对于长度为k的字符串,我需要char [k + 1]而不是char [k]?

如何解决《为什么对于长度为k的字符串,我需要char[k+1]而不是char[k]?》经验,为你挑选了1个好方法。

所以我有一套简单的代码:

#include 

int main()
{
  char x[3] = "ABC"; // (*)
  puts(x);
  return 0;
}

它返回一个奇怪的输出:

ABC¬ a

使用从上面的回答这个问题,我发现,当我改变x[3]x[4]一切都正常运行.

但为什么?为什么我会得到一个奇怪的输出x[3],为什么x[4]还好?



1> AlexD..:

终止没有空间\0.事实上,我希望在这种情况下编译失败.

尝试

char x[4] = "ABC";

或者,正如@Zeta建议的那样

char x[] = "ABC";


或者,甚至更好,`char x [] ="ABC";`.让编译器为您计算字符数.
推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有