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

2021-03-05 16:47:28 字數 4021 閱讀 7126

1樓:匿名使用者

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

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

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

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

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

希望能幫到你

2樓:杜爺1號

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

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

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

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

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

3樓:

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

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

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

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

4樓:杜爺1號

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

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

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

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

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

5樓:匿名使用者

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

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

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

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

6樓:楊塵一

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

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

const int a = 5;

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

#define b=3.1;

7樓:四角瑪

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

#define pi 3.1415926

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

權是簡單地替換

然後進入編譯器

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

const float pi=3.14159;

c語言中字元常量 字串常量和識別符號的區別

8樓:匿名使用者

字元常量是單引號括起來的,如'a'。也可以認為是一個int;字串常量是雙引號括起來的,如"abc"。是以\0結尾的字元陣列;標示符就是常量或者變數的名字,不用帶任何引號。

9樓:匿名使用者

c語言中只要是常量就表示它的值是無法修改的,如:

const unsigned char a =0; //用const關鍵字宣告瞭就表示a是個常量,其值在定義的時候就必須確定,後期無法修改,a的值等於0無法再修改。

unsigned char a =0 //這裡的a就是變數,雖然定義的時候賦予了值0,但由於它是一個變數所以在後期使用中可以隨意修改其值。

宣告是識別符號?變數的名字,常量的名字,巨集定義的名字,函式名都可以說是標符。

const char a=『a『或a=『b'』或a= 'x' 都是字元常量,長度為1個位元組,因為加了const所以值不能修改

const unsigned char p =「0123abx」就是一個字串常量,因為加了const所以值不能修改

10樓:匿名使用者

字串常量是用雙引號(「」)括起來的一個或多個字元組成。字元常量存放在記憶體中佔一個位元組的空間標示符是由若干個字元組成的字元序列,用來命名程式中的一些實體。可用作常量名、變數名和函式名等;標示符有它特定的命名規則,如必須是a~z或a~z、數字(0~9),下劃線(_),區分大小寫,還有字元數限制等;

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

11樓:小哥

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

下面是常用字元的sacii

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

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

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

12樓:靖蓄宇辰錕

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

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

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

字元常量和符號常量有什麼區別?字元常量在程式設計中有什麼用?

13樓:瑛夫科技

字元常量和符號常量的區別:

一個常量即可以直接用字面形式表示(稱為直接常量, 如124,156.8),也可以用一個識別符號來代表一個常量,稱為"符號常量"。但符號常量必須在程式中的說明部分定義,也就是說先定義,後使用。

字元常量是由單個字元組成,所有字元來自ascii字符集,共有256個字元。在程式中,通常用一對單引號將單個字元括起來表示一個字元常量。如:

'a','a','0'等。特殊地,對於單引號字元,則要表示成''''。對於ascii字符集中,按每個字元在字符集中的位置,將每個字元編號為0-255,編號稱為對應字元的序號。

字元常量在程式設計中的作用:

在c語言中,一個字元常量代表ascii字符集中的一個字元,在程式中用單引號把一個ascii字符集中的字元括起來作為字元常量。

字元常量在記憶體中佔4個位元組,存放的是字元的ascii碼(整型資料)。c語言規定所有字元常量都作為整型量來處理。

在c語言中,字元型資料與整型資料可通用:10+'r'。

字元常量和符號常量的定義:

1、 字元常量是用單引號括起來的單個普通字元或轉義字元,屬於程式語言。

2、 在c語言中,可以用一個識別符號來表示一個常量,稱之為符號常量。其特點是編譯後寫在**區,不可定址,不可更改,屬於指令的一部分。

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

字元常量 在c語言中一個字元常量代表ascii字符集中的一個字元,在程式中用單引號把一個字元括起來作為字元常量。大小寫字母代表不同的字常量 單引號中的空格也是 字元常量只能包含一個字元 字元常量只能用但括號括起來。下面是常用字元的sacii a z 97 122 a z 65 90 0 9 48 5...

C語言中字串常量和字元常量的區別

字元常量是單引號中的,在ascii表中有對應編號,字串是雙引號中的,單引號是字元常量 雙引號是字串常量 字串常量是一個或多個字元組成的常量 比方說一個字串常量a 給它的初始值是 abc123 可以是一個字元 5 構成但是字元常量只能是一個字元 比方說一個字元常量 a它的初始值為 1 不能多於一個字元...

C語言中定義符號常量是否必須用型別名來設定常量的型別求大神

不一定。定義符號常量 還可以使用巨集定義 如 define n 10 這裡就定義一個符號常量 n 10。注意 這裡的符號常量,也就是巨集名,一般用大寫。恩,這是肯定的,不管定義什麼都要用型別名來定義的。一定要用定義符號常量必須用型別名來設定常量的型別 c語言符號常量定義 在c語言中,可以用一個識別符...