极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10449|回复: 1

取地址操作为什么取出的值是随机值?

[复制链接]
发表于 2015-8-15 19:53:53 | 显示全部楼层 |阅读模式
int n = 0x0000FF00;
byte *t = (byte*)(&n);

Serial.println(t[0]);
Serial.println(t[1]);
Serial.println(t[2]);
Serial.println(t[3]);

从串口里面读取到的数据是 0,255,2,33

t是指向n的指针,所以取出的值应该是0,0,255,0

请问下大家,这里的值为什么不对。
回复

使用道具 举报

发表于 2015-8-15 21:25:06 | 显示全部楼层
你犯了兩個錯誤:
1) 數值不是由高位至低位儲存的, 所以結果不會是 0, 0, 255, 0
2) arduino 的 int 是 16 bit 的.

結果中, 首兩位 0, 255 是 n 的值, 而 2, 33 只是其他地址的數值.
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 03:51 , Processed in 0.034749 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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