为什么我可以循环一个char数组,直到NULL终止符,当我没有结束字符串时?

时间:2014-06-21 13:02:48

标签: arrays null char terminator

为什么可以循环遍历此字符串,直到NULL终结符,如果我没有用一个字符串结束字符串或给它一个额外的元素以自动终止一个?

char buf[5];
buf[0] = 'H';
buf[1] = 'e';
buf[2] = 'l';
buf[3] = 'l';
buf[4] = 'o';

char *p = buf;

for (p = buf; *p != '\0'; p++)
   ch_printf(ch, "%c\n", *p);

我是C的新手,试图自学,所以请原谅我的愚蠢:)

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

因为您正在尝试访问未分配的内存,因此[5]的结果为空