看板 Grad-ProbAsk 關於我們 聯絡資訊
https://i.imgur.com/g2tVcv1.jpg 想問一下"cp=(char*)&data;"這段碼 旁邊寫"重新定義data type," 所以cp在這指令之後data type被定義成什麼? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.11.193.65 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1574147128.A.6B7.html
mi981027: 不是重新定義cp,是把data轉型 11/19 16:00
mi981027: data本來的型別是long,&data的型別是(long *) 11/19 16:00
mi981027: 這行想把data的第一個byte賦值給cp,但cp是char * 11/19 16:00
mi981027: 所以寫(char *)&data 把data的第一個byte所在的位置賦 11/19 16:00
mi981027: 給cp 11/19 16:00
mi981027: 做完這步後,cp指向data的第一個byte 就是12 11/19 16:00
mi981027: 那cp+2就是指向data的第3個byte,就是56 11/19 16:00
mi981027: 不過這種題目要小心 如果是little endian 那順序會反過 11/19 16:00
mi981027: 來 11/19 16:00
fmtshk: 瞭解,謝謝 11/19 16:03