1樓:網友
c語言編譯器負責將源**中的十進位的10翻譯成4位元組資料:0a(16進位)(實際儲存為二進位,但描述起來太長不方便一般用16進位顯示和描述),而乙個位元組的10實際上的二進位就是你說的00001010。
實際上在處理儲存之前需要先分配乙個記憶體給變數 i,並在編譯環境中註冊登記這個變數名-位址關係(變數表),方便後續**訪問此變數時匹配到該位址,比如遇到 i=i+2時,編譯器就會生成乙個指令對該位址的值進行+2操作。此外還需要生成乙個mov指令**指揮cpu執行:資料儲存到該位址。
如果你對編譯後的細節感興趣,可以在除錯時按ctrl+alt+d(vs的快捷鍵,也可以通過選單導航到「除錯-視窗-反彙編」,其他編譯器在除錯選單中找)切換到反彙編視窗檢視編譯結果,系統會逐條顯示每一條語句對應的彙編指令。
當你對彙編指令感到好奇之後,可以看看彙編、編譯原理、8086 cpu原理、以及數位電路的解碼器 等書籍,不需要完全看懂,瞭解下會對你學習任何程式語言有幫助,不僅僅侷限於c語言。
2樓:網友
在系統為乙個程式分配的空間中,分成許多段,比如有**段,存放程式可執行**,有資料段,可以分配變數,有常量段,專門存放常量,是隻讀的。常量變數可以位於資料段中,仍然是變數,只是程式沒有改動許可權。在程式執行到main之前,系統負責將常量區儲存的常量賦值給常量。
3樓:網友
如果你要弄明白必須學兩門課:計算機原理和組合語言,這個簡單兩句說不清楚。
c語言中到變數與記憶體的關係
4樓:網友
乙個由c/c++編譯的程式佔用的記憶體分為以下幾個部分,1、棧區(stack)— 由編譯器自動分配釋放 ,存放為執行函式而分配的區域性變數、函式引數、返回資料、返回位址等。其操作方式類似於資料結構中的棧。
2、堆區(heap) —一般由程式設計師分配釋放, 若程式設計師不釋放,程式結束時可能由os** 。分配方式類似於連結串列。
3、全域性區(靜態區)(static)—存放全域性變數、靜態資料、常量。程式結束後由系統釋放。
4、文字常量區 —常量字串就是放在這裡的。 程式結束後由系統釋放。
5、程式**區—存放函式體(類成員函式和全域性函式)的二進位**。
c中,巨集定義的常量並不會分配空間,而是在**預編譯時替換這個巨集。而const修改的常量,需要根據這個常量定義而定,比如如果是全域性資料則會在全域性區分配空間,而區域性資料會在棧區分配。
5樓:特維佐
巨集定義並不分配記憶體啊,它只是代換而已吧,等真正編譯到巨集替換的那裡才分配記憶體,分配到棧中,如果是靜態變數會分配到靜態儲存區,c語言好像沒有const變數,應該在c++裡才有吧。const變數應該和一般變數一樣的分配在棧中。
c語言中到變數與記憶體的關係
6樓:薊素枝六鶯
巨集定義並不分配記憶體啊,它只是代換而已吧,等真正編譯到巨集替換的那裡才分配記憶體,分配到棧中,如果是靜態變數會分配到靜態儲存區,c語言好像沒有const變數,應該在c++裡才有吧。const變數應該和一般變數一樣的分配在棧中。
c語言變數儲存
7樓:尼見
b對,c語言中把定義在函式內部的變數稱為區域性變數,區域性了、變數的有效作用範圍i額侷限於所在的函式內部,例如形參就是區域性變數。
a對 全域性變數和靜態區域性變數都分配在計算機的靜態儲存區。全域性變數可以被所有函式呼叫。它的生命週期從程式開始一直到程式結束。並且,自動變數又稱區域性變數分配在動態儲存區。
c 是對的,區域性變數儲存在動態儲存空間裡。只有靜態區域性變數才儲存在靜態儲存空間裡。
順便說下。我是軟體工程專業的,可以很負責的告訴你。樓上的答案是錯的。如果樓主還有什麼不懂的可以問我。,
8樓:網友
a錯,全域性變數不一定就是靜態儲存的,b對 區域性變數就是隻在本函式範圍內有效。
c對這是本人的答案 謝謝~~~
C語言怎麼將浮點變數存入字元陣列
天雲小店 利用字元與ascii碼的關係 將float型的每一位變為字元型 自我程式設計 如果是在pc上,直接使用sprintf函式就可以實現 include include int main 但在微控制器中,沒有現成函式呼叫,那就自己寫 include void sprint float n,cha...
c語言中變數的平方怎麼輸入,C語言中變數的平方怎麼輸入
天雲一號 在c 中,變數a的平方可以有2種方式進行輸入 1 直接本身相乘a a 2 用函式pow進行求變數a的平方,即pow a,2 注 函式pow的用法如下 函式格式 double pow double x,double y 功 能 計算x的y次冪 返 回 值 計算結果 當使用pow函式時,需要將...
在C語言中,怎麼判斷變數是int型的還是char型的
變數是int型的還是char型,是由宣告決定的。函式呼叫時引數型別錯,你編譯時就通不過呀。unsigned char 可以當無符號整型用。 假設函式形式為 int function int n 方法1 判斷實參字長 int function int n 在c語言裡有個函式可以判斷輸入的是不是數字或者...