作者fmtshk (fmtshk)
看板Grad-ProbAsk
标题[理工] 计组_97台科电子
时间Tue Nov 19 15:05:26 2019
https://i.imgur.com/g2tVcv1.jpg
想问一下"cp=(char*)&data;"这段码
旁边写"重新定义data type,"
所以cp在这指令之後data type被定义成什麽?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.11.193.65 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1574147128.A.6B7.html
1F:推 mi981027: 不是重新定义cp,是把data转型 11/19 16:00
2F:→ mi981027: data本来的型别是long,&data的型别是(long *) 11/19 16:00
3F:→ mi981027: 这行想把data的第一个byte赋值给cp,但cp是char * 11/19 16:00
4F:→ mi981027: 所以写(char *)&data 把data的第一个byte所在的位置赋 11/19 16:00
5F:→ mi981027: 给cp 11/19 16:00
6F:→ mi981027: 做完这步後,cp指向data的第一个byte 就是12 11/19 16:00
7F:→ mi981027: 那cp+2就是指向data的第3个byte,就是56 11/19 16:00
8F:→ mi981027: 不过这种题目要小心 如果是little endian 那顺序会反过 11/19 16:00
9F:→ mi981027: 来 11/19 16:00
10F:→ fmtshk: 了解,谢谢 11/19 16:03