C語言中,常變數與符號常量有什麼區別

2021-03-17 09:46:12 字數 4912 閱讀 2452

1樓:東門士恩儲子

符號常量與常變數的區別:符號常量不佔用記憶體空間,在預編譯時就全部由符號常量的值替換了,而常變數佔用記憶體空間,也有資料型別,但是此變數在存在期間是不能重新賦值的。

1、常變數a的定義如下:

const

inta=5;

2、符合常量pi的定義如下:

#define

b=3.1;

c語言裡符號常量和常變數有什麼區別?

2樓:楊塵一

符號常量與常變數的區別:符號常量不佔用記憶體空間,在預編譯時就全部由符版號常量的值替換了,而常變數佔用權記憶體空間,也有資料型別,但是此變數在存在期間是不能重新賦值的。

1、常變數a的定義如下:

const int a = 5;

2、符合常量pi的定義如下:

#define b=3.1;

3樓:四角瑪

符號常量 是編譯前有前處理器處理的

#define pi 3.1415926

#define 是一條預處理命令, 就是出現符號常量pi的地版方用後面的數字替換隻

權是簡單地替換

然後進入編譯器

而常變數由編譯器處理,分配記憶體空間,有資料型別,可以和變數一樣使用,但不可以改變值!

const float pi=3.14159;

請問c語言中,常變數和符號常量的不同之處在哪?

4樓:寂寞的哥布林

eg{const a=3;

a=4; //出錯,常變數不允許被修改}

c語言中符號常量和字面常量的區別?怎麼區分。

5樓:杜爺1號

我們在用c程式設計時有時需要定義不變的變數,即常量,有兩種方法。

舉例說明一下,定義常量pi的兩種方式:

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

區別:第一種方式:是符號常量,將pi定義成一種符號,此時pi只是3.1415926的別名,在編譯期間用3.1415926去取代pi的值;

第二種方式:是命名變數,將pi定義成變數,但告訴編譯器它的值是固定不變的,如果在程式中試圖去修改它的值,在編譯時會報錯。

6樓:匿名使用者

這個很好理解 看錶示方法就可以判斷出來在函式主體之前(一般是在接著呼叫庫函式之後寫),使用#define 定義的常量就是字面常量 這個值在任何一個塊中都可以呼叫 而且編譯器不會為該常量分配記憶體;

例如: #define sx 250;這就是一個定義的好的字面常量。

符號常量的表示方法為:『x』,『250』等等,使用單引號來表示。

常變數和符號常量的區別

7樓:愛笑的天宇

符號常量:

在c語言中,可以用一個識別符號來表示一個常量,稱之為符號常量。

符號常量在使用之前必須先定義,其一般形式為:

#define 識別符號 常量

其中#define 也是一條預處理命令(預處理命令都以"#"開頭),稱為巨集定義命令,其功能是把該識別符號定義為其後的常量值。一經定義,以後在程式中所有出現該識別符號的地方均代之以該常量值。習慣上符號常量的識別符號用大寫字母,變數識別符號用小寫字母,以示區別。

例:#include

#define price 30

main()

使用符號常量的好處是:

含義清楚;

能做到「一改全改」。

常變數就是用const定義的變數,常變數的值是不能被改寫的,只能使用不能改寫,除非是用友原函式進行呼叫。其實相當於用#define定義的變數,不過在c++中用const定義。在c中一般用#define.

8樓:江湖馨手

在程式執行過程中,其值不能被改變的量稱為常量。

在物件名前使用const宣告常物件,但宣告時必須同時進行初始化,而且不能被更新。

例如定義類base的一個常物件a:

base const a(25,68);

用一個標示符代表一個常量的符號,稱為符號常量。

符合常量pi的定義如下:

const double pi=3.141592是用名字pi來代替數字3.141592

9樓:匿名使用者

常變數用const 來修飾其值在變數存在期間不能改變;符號常量就是用一個符號代替一個常量例如#define pi 3.1416,注意後面沒有分號!!

符號常量與變數到底有什麼區別?

10樓:

符號常量與變數區別為:定義不同、定址不同、宣告不同。

一、定義不同

1、符號常量:符號常量在使用之前必須先定義,編譯後寫在**區。

2、變數:變數在使用之前不必先定義,編譯後寫在執行區。

二、定址不同

1、符號常量:符號常量不可定址,沒有儲存空間。

2、變數:變數可定址,有儲存空間。

三、宣告不同

1、符號常量:符號常量在宣告時如果沒有提供值,則該常量的值是不確定的,而且無法修改它。

2、變數:變數在宣告時如果沒有提供值,則該常量的值按照定義型別預設系統值,可以重新修改。

11樓:匿名使用者

在程式執行過程中,其值不能被改變的量稱為常量。用一個標示符代表一個常量的符號,稱為符號常量。而變數代表記憶體中具有特定屬性的一個儲存單元 ,它用來存放資料,也就是變數的值,在程式執行期間,這些值是可以改變的。

12樓:半半天空

符號常量是用符號表示的常量,他和程式一起儲存,而變數計算機會給他單獨分配記憶體

13樓:

符號常量的值是不能改變 是一個不能改變值的變數

變數就是可以在程式中改變已經賦予的值

c語言中字元常量與字串常量有什麼區別?

14樓:小哥

字元常量:在c語言中一個字元常量代表ascii字符集中的一個字元,在程式中用單引號把一個字元括起來作為字元常量。大小寫字母代表不同的字常量;單引號中的空格也是;字元常量只能包含一個字元;字元常量只能用但括號括起來。

下面是常用字元的sacii

'a』--'z' 97------122'a』--'z' 65-------90'0'---'9' 48-------57字串常量:字串常量是用雙引號括起來的,在c語言中系統會在每個字串的最後自動加入一個'\0'作為字串的結束標誌。

區別:'z'是字元常量,佔一個位元組;"z"是字串常量,佔兩個位元組,其中一個放'\0'。

它們兩個的用法都明白了,區別就知道了

15樓:靖蓄宇辰錕

字元常量是一個字元,如'a','4','\0','\b','\142'等等,字串常量可以是一個字元"n",也可以沒有字元('\0'),更多的是多個字元。

作為字元常量,二者間沒有區別,在c++中,為了方便,將字串定義成一個類string,但用char

*說明和定義的串常量仍然是一樣的,沒有任何區別。

c++ 語音中的 符號常量和常值變數有什麼區別?

16樓:匿名使用者

修正下樓上的小錯誤,應該是#define pi 3.14 沒有=號;然後#define定義的常量只是做簡單的替換,用後面的常量代替前面的符號。例如#define x 3+3 ,然後你再來個i=x*x 事實上執行的結果是

i=3+3*3+3=15。與實際要得到的值不符,這點要注意一下!

17樓:匿名使用者

符號常量用#define來定義,例如#define pi=3.14;

常值變數用const來定義,例如const double pi=3.14。

與符號常量相比,常值變數有更明確的型別屬性,更經常被程式設計師使用。

c語言中命名常量與符號常量的區別

18樓:匿名使用者

你說的命名常量和符號常量應該是用const和define巨集的意思

const表示常量,它會在資料區開闢一個空間用來儲存這個常量,但是這個常量只讀,不可寫。

用define巨集只表示**代換,在預編譯的時候遇到define的時候會把它轉換成相應的值,然後再彙編到指令中去,所以用巨集一般會把最後處理得到的值會寫入指令,用立即數定址的方式在指令空間裡面

這是它們本質上的區別,還有就是其他程式要訪問這個常量,const常量要用extern宣告,表示這個常量是其他資料空間的,在連線的時候會處理。

如果是巨集的話就必須要包含這個巨集定義的標頭檔案,這個是在預編譯的時候處理的

希望能幫到你

19樓:杜爺1號

我們在用c程式設計時有時需要定義不變的變數,即常量,有兩種方法。

舉例說明一下,定義常量pi的兩種方式:

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

區別:第一種方式:是符號常量,將pi定義成一種符號,此時pi只是3.1415926的別名,在編譯期間用3.1415926去取代pi的值;

第二種方式:是命名變數,將pi定義成變數,但告訴編譯器它的值是固定不變的,如果在程式中試圖去修改它的值,在編譯時會報錯。

20樓:

命名常量:在程式執行的時候分配空間,只是不能改變其值; 若定義:const double pi=3.14;在程式執行的時候這變數pi分配空間,只是不能改變pi的值。

符號常量:在預編譯的時候就換成具體的值。 若定義:#define pi 3.14

在預編譯的時候就將pi替換成3.14。

c 中常量與變數的區別,C 中常量與變數的區別

常量在執行過程中值不會被改變,變數在執行過程中會被改變。常量會被分配在堆記憶體中,變數會被分配在棧上。最通俗copy的解釋可以 按數學上的常量和變數來理解,你可以不用知道內部機理。常量的值不容許改變,而變數的值可以在程式執行中可以動態改變。形式上變數肯定用變數的識別符號 也就是所謂的變數名 表示。常...

C語言中,指標常量和常量指標有什麼意義?能否舉例說明一下

指標常量的意思是指標指向的地址無法被改變 而常量指標意思是指標指向的資料不能被改變,但指標可以移動 c語言中的陣列名字是指標常量還是常量指標呢 陣列名是指標 來常量,指源針不是有常量指標和指標常量和常量常指標嗎?地址是絕對的,score指向受保護,但首地址的內容可以改變,所以陣列首地址應該是指標常量...

c語言中變數定義是什麼,c語言中exit怎麼定義?

型別說明符 變數名稱 賦值表示式。這是基本的。比如 int a 1 2 char b b 定義了一個整數型變數a 其值為1 2就是3,定義了一個字元型變數b,b的值為字元 b 型別說明符變數名稱還可以加修飾說明,比如前面加上const表示這是一個不能修改值得常量等等。變數 是一個能夠存放某個指定型別...