[問題] 指標是否等於存取RAM?

看板C_and_CPP作者 (Marshall)時間9年前 (2016/08/27 00:20), 9年前編輯推噓3(303)
留言6則, 4人參與, 最新討論串1/1
最近學到指標,但一直不是很清楚意思, int addr; int *addr; //data 意思是,指標可以在addr上做存取資料, 我想在 addr = 0xff 的位子上寫 data = 0x00 這行轉成程式就變成 *addr = 0x00 所以我在整個code中, 每個function都能知道變數的記憶體,就可以直接做存取? 不知這樣解讀是否正確 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.246.186 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1472228456.A.108.html

08/27 00:32, , 1F
現在os大多是virtual memory,換言之你拿到的不會是ram
08/27 00:32, 1F

08/27 00:32, , 2F
的physical address
08/27 00:32, 2F

08/27 00:37, , 3F
記憶體不等於RAM 你要先有這概念
08/27 00:37, 3F

08/27 00:37, , 4F
你可以說是「記憶體位置」但這位置不見得在RAM上
08/27 00:37, 4F
看來是我誤用了RAM的詞, 但主要功能就是這樣對吧? 無時無刻想要對哪一個addr上的data做改變,用指標就對了? ※ 編輯: hsucheng (1.172.246.186), 08/27/2016 00:59:39

08/27 01:56, , 5F
概念上不能說錯, 但並不是任意哪裡都能給你隨便指
08/27 01:56, 5F

08/28 14:48, , 6F
亂指可能會指到非法的記憶體位址 很危險
08/28 14:48, 6F
文章代碼(AID): #1Nm6ne48 (C_and_CPP)