Re: [問題] 找記憶體位置

看板C_and_CPP (C/C++)作者 ( )時間16年前 (2009/11/29 11:48), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串4/7 (看更多)
※ 引述《devilarise (Devil)》之銘言: : 而如果寫成 int* b = &a;的話 : 視為一種傳址的動作 : 從此a跟b兩個變數的記憶體位址 : 同時指向0x123456這個位置上 怪怪的 ... 那如果 int a; int b = (int) &a; 呢 ? 也許是中文翻譯的問題, 一般我們說傳值、傳址、傳參照是 call by value, call by address, call by reference 的中譯,通常用來指呼叫函式時的參數傳遞。 '=' 為賦值, assign 而我賦的值是 &a, 一個位址, 但是也是一個值啊 你也可以這樣用 int a; int b = (int) &a; *( (int*) b ) = 5; 這種寫法當然不好,但是這是合乎語法的。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.67.217

11/29 12:15, , 1F
其實還是少講Call by Address比較好一點, 這個其實也是
11/29 12:15, 1F

11/29 12:16, , 2F
一種誤用的樣子, 雖然可以知道是在只int*那個例子XD
11/29 12:16, 2F

11/29 12:23, , 3F
嗯這個我這個寫法很差XD
11/29 12:23, 3F

11/29 12:25, , 4F
其實, 拿int存pointer, 或者pointer其實只是個int這種寫
11/29 12:25, 4F

11/29 12:25, , 5F
法不會沒有喔, 尤其用在資料傳遞雙方無法認知對方的型態
11/29 12:25, 5F

11/29 12:26, , 6F
或者只是要記碌address以供其他資結或函數使用:)
11/29 12:26, 6F
文章代碼(AID): #1B4UyOlN (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 4 之 7 篇):
文章代碼(AID): #1B4UyOlN (C_and_CPP)