C語言中的只讀變數與常量的具體區別在哪兒 都是存在資料區裡面的嘛?有什麼具體區別

2022-11-29 17:45:09 字數 2343 閱讀 7959

1樓:

巨集定義的作用是字串的替換,不是在編譯後產生的,

而是預編譯就已經替換了,

例如你說的a[i] 如果i是巨集(一般沒有單字母小寫的巨集)那麼i會在編譯之前就被替換成相應的字串的。巨集不是變數,只是字串替換的作用。但是const就不一樣了雖然是常量,但是是在編譯後處理的。

所以編譯之前不能識別其值。因為編譯之前沒有分配空間。

2樓:匿名使用者

按其值在程式執行過程中是否變化,可將資料分為兩類:變數和常量。其值在源程式中明確指定,在執行過程中不再變化的量為常量,在程式執行過程中,其值在一定範圍變化的量為變數。

變數代表儲存器中一塊指定的儲存區域,當儲存區域的內容發生變化時,變數的值也隨之改變。至於在ram中的儲存,要視其作用域和生存期而定。只讀變數也是變數,必須先定義(說明型別),後使用,而常量,其取值形式就表明它的型別。

3樓:浣月_樓主

常量是不可以變化值得,變數可以。但是變數也不可以二次定義。是都在資料區裡面。

變數就算沒有賦值也會有分配的記憶體空間。區別是變數可以變化唄,但是記憶體空間都是不變的。你也可以用const使變數上鎖不允許變動其值

4樓:

常量段一般包含編譯器產生的資料(與只讀段包含使用者定義的只讀資料不同)。比如說由一個語句a=2+3編譯器把2+3編譯期就算出5,存成常量5在常量段中

c語言中怎麼區分常量與變數?

5樓:匿名使用者

一般普通變數:如123,3.5,"abc", 'a'   很容易識別以變數形式展現的,要看識別符號的定義形式,才能確定該識別符號是常量,還是變數,如:

const int a=5 ; //常量 有const修飾,變數不能修改

int b=34; //變數

#define 定義的巨集,即不是常量也不是變數

c語言 變數和常量的問題

6樓:

常量是指它的值不能改變,有可能直接編譯在目標程式中,而沒有存放地址。

變數的值可以由程式改變,存放在程式的資料區的記憶體地址中,具體存放在什麼區域由變數的性質(全域性變數、區域性變數、靜態變數、自動變數等)決定。

7樓:匿名使用者

常量是在定義的時候就已經賦值,並且在程式執行過程中不會改變,變數會變而已

常量和變數的區別

8樓:幾米要環遊世界

常量bai和變數的區別:變

du量是「可讀、可寫」,而常zhi量是dao「只讀」的。

變數是在程式內執行過容

程中,內部儲存的值,隨時可以被改變的一段記憶體地址。比如:int a = 123,這裡的a就是一個整型變數,通常情況下,整型變數佔據著4個位元組的記憶體。

常量在程式執行過程中,所表示的值是無法被改變的。比如:const int a = 123, 這裡的a,在其前面有一個修飾符「const」,表示a的值是「只讀」的。

9樓:紅山人

常量就是不變的量,可以是數值,字元,各種符號.

10樓:匿名使用者

資料型別就像:整數,單精度小數,雙精度小數……

變數:就像數學中的變數x,y……注意:他們的值是可以改變的

常量:也像數學中的常量 a,b……,值一旦給定後就不變

c語言裡,哪些變數是存放在堆裡,哪些是存放在棧裡?(

11樓:匿名使用者

在c/c++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。內容

棧:就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。

堆:就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動**。

自由儲存區:就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。

全域性儲存區(靜態儲存區):全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。程式結束後有系統釋放。

常量儲存區:這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改。

希望對你有幫助

12樓:匿名使用者

放在堆裡的資料時管理員自己開闢空間和釋放空間,如,new 和malloc,而放在棧裡的資料時計算機自動分配記憶體和釋放的,如變數

常量與變數的區別,常量和變數的區別

數學中表徵襲 事物量的一對概bai念。在事物的特du定運動過程中,某量若zhi保持不變,則稱dao之為常量。反之,則稱之為變數,在生活中有廣泛運用。數學的研究物件從常量進到變數的過程表明,人們對事物數量關係的研究已經從靜止的 孤立的觀點轉變到運動和聯絡的觀點。這種思維方式的改變反映出辯證法已經進入了...

c語言中,形參可以是常量,變數或表示式,這句話為什麼是錯的

說好的是形參。不是實參。實參就是對的。我覺得樓主可能沒有了解什麼是形參。當然。這個可以不用去理解也不影響 質量的。但是。理論就是這麼說的。最好看懂。形參只能是變數,在被定義的函式中,必須指定形參的型別。沒有確定的值 形參變數在未出現函式呼叫時,並不佔用記憶體,只在呼叫時才佔用。呼叫結束後,將釋放記憶...

c語言合法常量定義,c語言的合法常量的要求是什麼?

在程式執行過程中,其值不發生改變的量稱為常量。整型常量 12 0 3 實型常量 4.6 1.23 字元常量 a b 識別符號 用來標識變數名 符號常量名 函式名 陣列名 型別名 檔名的有效字元序列。符號常量 用標示符代表一個常量。在c語言中,可以用一個識別符號來表示一個常量,稱之為符號常量。符號常量...