[問題] 常數的記憶體位置

看板C_and_CPP作者時間12年前 (2013/04/25 23:35), 編輯推噓2(207)
留言9則, 7人參與, 最新討論串1/1
我想問一個關於常數位置的問題 常數在C裡面到底要如何取其記憶體位置呢 EX. int *p; p = &100; 這樣會錯誤耶 那我該如何取100在程式中的記憶體位置呢 c對常數是如何運作的呢 補一下 想問 int a[10][10]; p = a; //為什麼這邊會錯呢? p = (int *)a; 會對 我想問的是在c中 多維陣列不是也是用一維陣列做的嗎 為什麼我變數a要轉型才會對呢 謝謝! (改錯字) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 39.15.164.85 ※ 編輯: kumusou 來自: 39.15.164.85 (04/25 23:38) ※ 編輯: kumusou 來自: 39.15.164.85 (04/25 23:39)

04/25 23:38, , 1F
const int N = 100; const int* p = &N;
04/25 23:38, 1F

04/25 23:40, , 2F
可是那種寫法是取到變數的記憶體位置 我想取常數的 @@
04/25 23:40, 2F

04/25 23:57, , 3F
不能取。他很可能根本就不存在於記憶體中
04/25 23:57, 3F

04/26 00:11, , 4F
也許它是直接出現在指令上
04/26 00:11, 4F

04/26 00:13, , 5F
你想取常數,那為什麼又要用指標呢
04/26 00:13, 5F

04/26 00:14, , 6F
你根本不應該去抓出常數的記憶體位址
04/26 00:14, 6F
※ 編輯: kumusou 來自: 39.15.164.85 (04/26 00:19)

04/26 00:55, , 7F
就算底層都一樣 compiler還是要幫你檢查型態
04/26 00:55, 7F

04/26 01:25, , 8F
原po可以去看一下CPU指令架構大概長什麼樣子
04/26 01:25, 8F

04/30 17:51, , 9F
去了解一下組語, 應該就不會有這種困擾了
04/30 17:51, 9F
文章代碼(AID): #1HUKrIaW (C_and_CPP)