烽火社区

标题: 为什么会输出一个‘h'字符出来? [打印本页]

作者: 诸葛丶    时间: 2015-10-19 06:12 PM
标题: 为什么会输出一个‘h'字符出来?

[attach]34000[/attach]


Serial.begin(9600);
char a[]={"bbbb"};
Serial.println(a);
Serial.println(a[4]);
Serial.println(a[5]);


作者: 悟道    时间: 2015-10-19 06:12 PM

Serial.println(a[5]);

溢出了,你访问到a数组后面的内存了,这个值是不确定的。

你的数组a占用5个字节,前面四个是字符'b',后面带有一个结束符0,再后面的内存就不是a数组的了。

注意,数组是的序号是从0开始的,a[5]其实访问的是数组的第6个元素


作者: dennywen    时间: 2015-10-20 08:03 AM
给楼上顶一个!
作者: 行云流水    时间: 2015-10-20 09:52 AM
一楼正解……




欢迎光临 烽火社区 (https://bbs.cnecport.com/) Powered by Discuz! X3.2