seagatecm 发表于 2015-8-15 19:53:53

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

int n = 0x0000FF00;
byte *t = (byte*)(&n);

Serial.println(t);
Serial.println(t);
Serial.println(t);
Serial.println(t);

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

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

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

Super169 发表于 2015-8-15 21:25:06

你犯了兩個錯誤:
1) 數值不是由高位至低位儲存的, 所以結果不會是 0, 0, 255, 0
2) arduino 的 int 是 16 bit 的.

結果中, 首兩位 0, 255 是 n 的值, 而 2, 33 只是其他地址的數值.
页: [1]
查看完整版本: 取地址操作为什么取出的值是随机值?