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

指標相減

尚未結案
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-15 15:43:05 IP:59.120.xxx.xxx 未訂閱
double arr=[8][15]; double *p,*q; int count; p=&arr[2][6]; q=&arr[6][11]; count=q-p; 假設 p=0240FCC0 q=0240FEC8 WHY count=65 兩個位址相減 怎看出來是65 小弟不解 只能用矩陣暴力法算出是65 順便請教大家 [(10-6) 1] (6-2)*15=65 其中[(10-6) 1] 的 1 為啥要 1 小弟數學也蠻差的 請大家教教我 謝謝!!!
derrenbol1
中階會員


發表:5
回覆:113
積分:93
註冊:2004-12-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-15 17:27:00 IP:61.228.xxx.xxx 未訂閱
To Smallcat7315: all[8][15]在你的定義是二維陣列, 但你將其 看成一維陣列的話, 就是all[120], 當然其索引 值就是0~119, 所以這個也就是為何要加一, 算 個數的時, 必須終點減起點再加一. double型別佔記憶體八個位元組, 所以 (240FEC8-0240FCC0) = 208(Hex) = 520 520/8 = 65
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-15 20:22:02 IP:59.120.xxx.xxx 未訂閱
引言: To Smallcat7315: all[8][15]在你的定義是二維陣列, 但你將其 看成一維陣列的話, 就是all[120], 當然其索引 值就是0~119, 所以這個也就是為何要加一, 算 個數的時, 必須終點減起點再加一. double型別佔記憶體八個位元組, 所以 (240FEC8-0240FCC0) = 208(Hex) = 520 520/8 = 65
不好意思 再請教你 [(10-6) 1] (6-2)*15=65 像這公式裡 11不是也算在內為何是10-6 1? 而且 為何6-2不用 1 我問的問題有點呆 可是我怎想還是不太懂= =""" 而且32bits的OS下 pointer不是佔4bytes? 那q-p 是4bytes嗎? 520是bytes?? 麻煩幫幫我~"~
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-16 10:42:43 IP:211.22.xxx.xxx 未訂閱
引言: 不好意思 再請教你 [(10-6) 1] (6-2)*15=65 像這公式裡 11不是也算在內為何是10-6 1? 而且 為何6-2不用 1 我問的問題有點呆 可是我怎想還是不太懂= =""" 而且32bits的OS下 pointer不是佔4bytes? 那q-p 是4bytes嗎? 520是bytes?? 麻煩幫幫我~"~
插個花~ 我覺得> >指標是指向記憶體的,再由指向的記憶體內容取出值,>> >> 因此兩者所指向的記憶體位址差距值是 (> -----------------------
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-16 13:24:05 IP:59.120.xxx.xxx 未訂閱
原來如此 是我搞混了阿 謝謝大家的幫忙
derrenbol1
中階會員


發表:5
回覆:113
積分:93
註冊:2004-12-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-10-17 15:23:12 IP:210.202.xxx.xxx 未訂閱
To Stallion: 感恩啊
系統時間:2024-06-02 12:52:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!