當前位置:首頁 » 編程語言 » c語言中常量到底占不佔內存空間
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中常量到底占不佔內存空間

發布時間: 2022-06-22 15:35:29

c語言中,符號常量和變數一樣,使用前必須先定義,並佔有一定的內存空間。對嗎

不對。
符號常量和變數一樣,使用前確實必須先定義,但符號常量不佔用內存空間。
符號常量會在預處理階段由預處理器用它的定義直接替換,到編譯階段符號常量根本就不存在了,是不會分配內存的。

比如,假設有符號常量pai的定義:
#define pai 3.14
和如下使用它的語句:
double r=8,c=2*pai*r,s=pai*r*r;
則經預處理器處理後,以上語句變成了:
double r=8,c=2*3.14*r,s=3.14*r*r;
到編譯階段已不存在符號常量了。

❷ c語言中,常量是存放在內存中嗎

常量和變數是放在不同的"段"(section)里,程序一旦載入,常量/變數自然都在內存里。

在程序的運行過程中,把需要處理的數據存放在內存儲器中,稱始終保持不變的數據為「常量」,稱存放可變數據的存儲器單元為「變數」,其中的數據稱為變數的值。

整數是以補碼的形式轉換為二進制代碼存儲在計算機中。

實數是以IEEE754標准轉回換為二進制代答碼存儲在計算機中。

字元本質實際也與整數的存儲方式相同(先通過ASCII碼把字元轉換為對應的整數,再按整數以補碼形式轉換為二進制)。

(2)c語言中常量到底占不佔內存空間擴展閱讀:

在除了『C/C++』的一些高級程序語言中,『常量』可以被稱作,「在一個信息變化過程中,始終不發生改變的量」,其可以是不隨著時間變化的某些量的固定信息;也可以表示為某一數值的字元(或字元串),常被用來標識、測量和比較兩者的差異。

但在 『C/C++語言中』,『常量』如果還用『運行過程中不變的量』來描述,就顯得不太准確了,甚至是在具體使用時,這就是一個錯誤的概念。在 『C/C++』中,定義『指針常量』時,根據『const 』的位置的不同,可以定義出幾個不同的形式,雖然其看起來『符合常量的概念』,但是在實際運行中,其值或地址值是會發生變化的。所以本質還不是『常量概念』

❸ 譚浩強的C語言書中說常量也占內存,我有疑問

譚浩強的C語言書很老舊。
int i=4;
過去 常量 4 要放到 常量區。
int i, 要分配 變數 存放單元。
然後 再 把 常量區的那個存4的單元里的4 賦給 i。
--
現在, int i=4;處理為 聲明與初始化。int i, 要分配 變數 存放單元,接著初始化存值4。
這樣,常量就不另占單元。
---
但是
char *p="abcd";
"abcd" -- 仍要放入常量區
char *p -- 指針佔4個位元組。

❹ C語言中常量有沒有占內存求高手幫忙

肯定占內存啊。只是它佔用的是內存中的某一靜態區域,也就是說 在程序運行期間,只有一份拷貝在內存中,程序結束後自動釋放

❺ c語言中,常量到底占不佔內存空間

c語言中,常量占內存空間。

變數使用前必須先進行定義。在內存中分配一塊存儲空間給變數,以便以後存儲數據。如果定義了多個變數則為多個變數分別分配不同的存儲空間。

不同類型的變數佔用不同大小的存儲空間,因為內存極其有限,分配適當的存儲空間可以以最少的空間來存儲它們,以節省空間。

(5)c語言中常量到底占不佔內存空間擴展閱讀:

變數使用注意:

變數的作用域:從變數定義的哪一行開始,直到代碼塊結束。

Return;退出函數,清除內存中的數據。

建議:使用矩形方框和excel來分析內存。

代碼塊{}的作用:可以用來提高性能,即時回收不再使用的變數。

❻ 變數常量到底佔用內存空間嗎,什麼樣的常量變數佔用內存空間謝謝了謝啦😊。

數據呀,如果出現大量數據被讀入內存,然後就占內存呀,如果這些大量數據需要復雜計算(計算演算法的緩存機制也會佔有大量內存),復雜計算吃掉大量CPU資源的。

linux :top

❼ c語言,哪些佔用空間,哪些不佔用空間

變數分為:全局變數,局部變數,靜態變數 佔用的內容區域都是不一樣,詳細看看書就知道了。宏在編譯的時候,編譯器不會為他分配內存,只是進行替代,也就是你說的不佔內存。但是你的理解有問題,不是占不佔的問題,而是怎麼占的問題。這就是內存的存儲原理。除了宏,目前編譯器都是要分配內存的!

❽ c語言常量 占內存嗎

不佔內存!!!
比如你定義了個 #define P 3.1415
這個是完全不佔內存的!在進行編譯的時候編譯器會把程序里所有 P 都改成3.1415 的!
其實在C 語言里的#define 是不太符合「常量」這個名字的。。。。。。

在C++ 里用const 定義的那才叫真正的常量!值不可以改變,是占內存的!

❾ C語言常量問題

常量它也是有地址的,只是和變數存貯的地方不同,但是存儲的形式是一樣的,就是在內存的地方不同,內存中有專門放常量的,通過存儲方法的角度是區分不了變數和常量的,只能通過其存儲的值是否變化來區分(以人的角度),和存放的地點不同區分(機器的角度)

比如在單片機中,就分為程序區和數據區,它的常量就放在程序區中

❿ c語言中為什麼字面常量與宏定義不佔內存空間

因為宏在預處理階段就會被替換掉,到了編譯的階段是沒有宏存在的,它自然到不了可執行文件中,所以它不佔內存空間。字面常量,占不佔空間要看情況。使用方式如下:

1、首先新建一個工程和.c文件,輸入頭文件、主函數和宏定義。