查看: 377|回复: 3
打印 上一主题 下一主题

为什么会输出一个‘h'字符出来?

[复制链接] qrcode

28

主题

31

帖子

94

积分

注册会员

Rank: 2

积分
94
楼主
跳转到指定楼层
发表于 2015-10-19 06:12 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

6

主题

135

帖子

110

积分

注册会员

Rank: 2

积分
110
沙发
发表于 2015-10-19 06:12 PM | 只看该作者

Serial.println(a[5]);

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

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

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

回复 支持 反对

使用道具 举报

0

主题

70

帖子

8

积分

新手上路

Rank: 1

积分
8
板凳
发表于 2015-10-20 08:03 AM | 只看该作者
给楼上顶一个!
回复 支持 反对

使用道具 举报

2

主题

108

帖子

52

积分

注册会员

Rank: 2

积分
52
地板
发表于 2015-10-20 09:52 AM | 只看该作者
一楼正解……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表