全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2223
推到 Plurk!
推到 Facebook!

(Byte*)的問題

答題得分者是:jow
hhmmjj1015
一般會員


發表:16
回覆:4
積分:4
註冊:2007-08-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-19 22:34:58 IP:140.115.xxx.xxx 訂閱
我看到了一段程式是這樣寫的
Byte *ptr ;
ptr=(Byte*)TheBitmap->ScanLine[y];

我的問題是~
1.ptr紀錄的是ScanLine[y]的位址還是內容呀?
2.(Byte*)TheBitmap->ScanLine[y]的(Byte*)跟(Byte)有什麼不同呢?
------
hello
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-19 23:04:16 IP:123.193.xxx.xxx 訂閱
(1)執行 (Byte*)TheBitmap->ScanLine[y]; 之後會傳回一個記憶體位址.
(2)ptr=(Byte*)(1)傳回的位址, 轉型成 ptr 宣告的型態以便儲存.(其實指標
都是佔用4Byte).
//-------------------------------------------------------------------------------------------
(Byte*) 用以將指標轉型, (Byte) 用以將資料轉型, 使其存取值為 Byte.

(A)
例如:
int a = 0xAABBCCDD;
byte b = (byte)a;
AnsiString s;
ShowMessage(s.sprintf("%4.4X", b));

使用 (byte)a , 只會將 0xDD 傳回, 指定給 b.

(B)
例如:
byte *p = (byte*)&a;
ShowMessage(s.sprintf("%4.4X", *p));//傳回 0xDD
p ;
ShowMessage(s.sprintf("%4.4X", *p));//傳回 0xCC
p ;
ShowMessage(s.sprintf("%4.4X", *p));//傳回 0xBB
p ;
ShowMessage(s.sprintf("%4.4X", *p));//傳回 0xAA

將一個佔4個 Byte 的整數a (int a), 用(byte*)指標方式,
以四個佔1個 Byte 的位於組來看待 int a... ^^

===================引 用 hhmmjj1015 文 章===================
我看到了一段程式是這樣寫的
Byte *ptr ;
ptr=(Byte*)TheBitmap->ScanLine[y];

我的問題是~
1.ptr紀錄的是ScanLine[y]的位址還是內容呀?
2.(Byte*)TheBitmap->ScanLine[y]的(Byte*)跟(Byte)有什麼不同呢?
編輯記錄
jow 重新編輯於 2007-10-19 23:07:14, 註解 無‧
jow 重新編輯於 2007-10-19 23:16:09, 註解 無‧
jow 重新編輯於 2007-10-19 23:18:43, 註解 無‧
系統時間:2024-05-02 11:08:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!