看板 PangSir 關於我們 聯絡資訊
※ 引述《IrisXIII (嚕嚕叭叭愛裝可愛星期五ꜩ》之銘言: : 就是我在課本的p125看到了兩種CODE: : 第一種 : arrayB BYTE 10h,20h,30h,40h : ptrB DWORD arrayB : (這一段的意思是說ptrB是一個DWORD大小的pointer variable, : 然後他把arrayB的位址放在裡面嗎?) : 第二種 : PBYTE TYPEDEF PTR BYTE : arrayB BYTE 10h,20h,30h,40h : ptr1 PBYTE arrayB : 我的問題在於說,arrayB的位址不是一個DWORD大小的值嗎? : 那為什麼在第二種CODE裡面卻用BYTE的大小就可以存呢? 1. 是的。 2.1 arrayB的位址是一個DWORD大小的值沒錯。 2.2 請問一下你是怎麼知道他是用BYTE的大小存的呢?如果你有自己先寫一個程式 試試看的話你會發現,ptr1的長度是一個DWORD,而不是一個BYTE。這個觀念 就跟C語言中的指標一樣,你宣告的type,PTR BYTE,代表這個指標會被用來 指向一個宣告為BYTE的東西,事實上他一樣是個長度為DWORD的指標,而非他 自己的長度為一個BYTE。 TA -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.82