作者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/m.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