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

2021-03-05 16:47:28 字數 3136 閱讀 8889

1樓:杜爺1號

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

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

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

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

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

2樓:匿名使用者

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

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

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

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

3樓:小哥

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

下面是常用字元的sacii

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

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

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

4樓:靖蓄宇辰錕

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

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

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

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

5樓:匿名使用者

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

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

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

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

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

希望能幫到你

6樓:杜爺1號

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

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

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

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

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

7樓:

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

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

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

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

8樓:匿名使用者

啥叫符號變數。

是不是 const int a =1;這個叫常變數和 光禿禿的一個 2.或者'a' 這個叫符號變數?

你可以認為沒有區別,a 再怎麼說也是變數,在變數區。光禿禿的2,'a'在編譯之後進入常量區。

常量區是不可修改的。變數區是可修改的。雖然說這裡已經加了const關鍵字,那只是編譯器為了邏輯上的理解,要強行繞過去 還是可以的,光禿禿的2 是繞都繞不進去的,除非用更暴力的手段去修改。

你可以認為 一個是摧毀的門,根本進不去,另外一個是 鎖住的門,你強行開啟也是可以的。只是要你自己對你的行為負責

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

9樓:瑛夫科技

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

一個常量即可以直

接用字面形式表示(稱為直接常量, 如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語言中以下合法的字元常量是在C語言中,以下合法的字元常量是

選ca 有雙引號,是字串 b 單引號裡只能一個字元 d 0表明是8進位制,只能出現0 7的數字e 書寫不完整,右半邊的單引號沒了 答案是c。各答案解析 a 有雙引號,是字串 b 單引號裡只能一個版字元 d 0表明是8進位制,只 能出現權0 7的數字 e 書寫不完整,右半邊的單引號沒了 拓展 在c語言...

c語言中各種常量佔用的記憶體分別是多少位元組

和是不bai是常量無du關和數 zhi據型別有dao關比如版 int 佔用 權 2 byte 位元組 char 1 byte long 4 byte byte 1 byte 不同編譯環境可能有不同的長度,可以用sizeof測試如int num sizeof char 就可以獲得char型變數所佔位元...