为什么我可以循环访问字符数组,直到 NULL 终止符,而我没有用一个结束字符串?



如果我没有用一个结束字符串或给它一个额外的元素以自动终止,为什么可以通过这个字符串循环直到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 != ''; p++)
   ch_printf(ch, "%cn", *p);

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

谢谢你的帮助。

这是因为您试图访问未分配的内存,因此buf[5]的结果为null

相关内容

  • 没有找到相关文章