㈠ c語言中變數的起始地址可以存放在
可以存放在指針變數、指針常量中
實際上還能存放在整數變數中
c語言允許任何類型的變數轉換為整形(包括指針)
㈡ 說明c語言程序中變數的作用域及存儲位置。
分為局部變數和全局變數;
局部變數作用域是main函數內部,出了函數就沒有用了。
全局變數的作用域是:從變數定義開始到整個程序結束才釋放。
㈢ C語言中的 局部變數,存儲在什麼地方
C語言中的局部變數存儲在棧里。
普通的局部變數在棧空間上分配,這個局部變數所在的函數被多次調用時,每次調用這個局部變數在棧上的位置都不一定相同。局部變數也可以在堆上動態分配(malloc),但是記得使用完這個堆空間後要釋放之。
在棧空間上分配時是要注意內存的,不能分配內存過大。如果棧內空間小於所申請的空間大小,那麼這時系統將揭示棧溢出,並給出相應的異常信息。但是堆不一樣,堆可分配空間是很大的。
(3)c語言變數存儲位置擴展閱讀
局部變數分類
1、位置:靜態局部變數被編譯器放在全局存儲區.data,所以它雖然是局部的,但是在程序的整個生命周期中存在(定義時出生,隨著程序結束而結束)。
2、訪問許可權:靜態局部變數只能被其作用域內的變數或函數訪問。也就是說雖然它會在程序的整個生命周期中存在,由於它是static的,它不能被其他的函數和源文件訪問。
3、值:靜態局部變數如果沒有被用戶初始化,則會被編譯器自動賦值為0,以後每次調用靜態局部變數的時候都用上次調用後的值。
㈣ C語言變數存儲在內存(memory)中的什麼地方
c語言中數據存儲分為以下幾個部分,每個部分存儲不同的內容:
1、棧區:存放函數的參數值,局部變數的值等。
2、堆區 :存儲動態生成的對象,一般由程序員分配釋放。
3、靜態區或者全局區: 存儲全局變數和靜態變數。
4、文字常量區 :存儲常量字元串。
5、代碼區 : 存儲函數體的2進制代碼。
㈤ C語言,指針變數存在內存的什麼地方
C語言中指針變數和普通變數的處理沒有任何區別,都是在數據棧中開辟的內存空間,只不過一個存的是內存地址而另一個是存的數據而已.
BTW:一樓不懂無所謂,出來誤導人可是你的不對了呵呵,SP是棧指針寄存器,保存的是棧頂指針,和C裡面的指針變數沒有任何關系.
㈥ C語言中全局變數存放在內存空間中的哪個位置
全局變數是編程術語中的一種,源自於變數之分。
變數分為局部與全局,局部變數又可稱之為內部變數。由某對象或某個函數所創建的變數通常都是局部變數,只能被內部引用,而無法被其它對象或函數引用。
全局變數既可以是某對象函數創建,也可以是在本程序任何地方創建。全局變數是可以被本程序所有對象或函數引用。一個局部變數在被其它對象引用時,會是一個空值。但全局變數卻不會出現這種情況。
全局變數全部存放在靜態存儲區,在程序開始執行時給全局變數分配存儲區,程序行完畢就釋放。在程序執行過程中它們占據固定的存儲單元,而不動態地進行分配和釋放;
㈦ c語言變數如何存儲在內存中
在系統為一個程序分配的空間中,分成許多段,比如有代碼段,存放程序可執行代碼,有數據段,可以分配變數,有常量段,專門存放常量,是只讀的。常量變數可以位於數據段中,仍然是變數,只是程序沒有改動許可權。在程序執行到main之前,系統負責將常量區存儲的常量賦值給常量。
㈧ 單片機C語言設置變數存儲在什麼地方
RAM是內存,變數a就存在這裡面。Flash 在單片機是做程序儲存器,用於存放你的程序。eeprom也是用來存變數的,但是eeprom在斷電後數據還在,RAM斷電後數據就沒了
㈨ C語言,變數存儲地址,取數據
如果a是指針變數,則c[0]= *a; 如果a不是不是指針變數,例如c為char類型數組,a為long變數,則先 定義一個char * 變數 ,如 char * ch; 接著 ch = a; 最後 c[0] = *ch;
㈩ c語言中 變數存儲的是不是地址
變數存儲的是對應類型的值,是否為地址同樣取決於類型。
變數具有不同的類型。
整型變數int,存儲的就是一個整數;float類型,存儲的是實數;char類型,存儲的是字元(實際上也是整數)。
指針變數,是C語言的特殊變數,其存儲的是地址。在C語言中,只有指針是用來存儲地址值的。