看板 C_and_CPP 關於我們 聯絡資訊
我想問一個關於常數位置的問題 常數在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)
littleshan:const int N = 100; const int* p = &N; 04/25 23:38
kumusou:可是那種寫法是取到變數的記憶體位置 我想取常數的 @@ 04/25 23:40
azureblaze:不能取。他很可能根本就不存在於記憶體中 04/25 23:57
LPH66:也許它是直接出現在指令上 04/26 00:11
diabloevagto:你想取常數,那為什麼又要用指標呢 04/26 00:13
diabloevagto:你根本不應該去抓出常數的記憶體位址 04/26 00:14
※ 編輯: kumusou 來自: 39.15.164.85 (04/26 00:19)
azureblaze:就算底層都一樣 compiler還是要幫你檢查型態 04/26 00:55
james732:原po可以去看一下CPU指令架構大概長什麼樣子 04/26 01:25
MaxHaru:去了解一下組語, 應該就不會有這種困擾了 04/30 17:51