你知道什么是C語言的常量?
為什么它們是編程世界的重要組成部分?
實際上C編程中的常量只是一些固定的值,在整個程序運行過程中都不能改變。這些固定值也稱為字面量。
本章將主要強常量和字面量之間的關鍵區別。
在我們開始之前,你必須了解C語言中的變量。
現在,讓我們通過考慮以下問題來認識常量和字面量在C編程語言中的重要性: 在某些情況下變量的值不會改變,比如說,近似等于3.14159的pi值是常量,它永遠不會改變,這是一個普遍的事實。我們可能會遇到一些情況,在這些情況下,我們需要pi來進行數學計算。類似地,我們可以根據方便程度為多個變量分配常量。
1. C編程中的變量和常量
值得注意的是,變量在編程和數學中有不同的含義。變量只是一個我們可以存儲在計算機內存中的值。我們可以在運行時輕松地更改它的值。與之相反,常量在整個程序運行過程中都不會改變它們的值。常量可以包含C語言中可用的任何數據類型。
2. 聲明或定義常量
我們可以通過兩種方式將C常量賦值給變量:
- 使用#define,一個預處理器指令:我們已經在預處理器中詳細討論了#define
- 使用關鍵字const:它類似于變量聲明,只是我們應該在它之前添加關鍵字“const”。一旦我們聲明了常量,就給它賦值是很重要的。
了解更多關于C語言的預處理程序,看看它是否有用?
下面是一個C語言的程序,它演示了當我們試圖修改一個常量的值時會發生什么:
輸出:
3. C語言中的常量和字面量
正如前面所討論的,常量和字面量可以互換使用,但是這兩者之間有一些細微的區
讓我們考慮一個簡單的例子來更好地理解它。
在印度,法定投票年齡是18歲。
因此,我們定義
const voting_age = 18;
在這里,18是一個字面量,一個表示自身字面意思的值,而常量可以被認為是一種數據類型,它可以代替字面量來增強代碼的功能。
現在,我們希望打印信息,“你可以投票!”給年齡大于或等于18歲的人士。
因此,我們首先將用戶的年齡作為輸入,給出條件:
if (age >= voting_age) { printf(“ You are allowed to vote! ”); }
這里,標識符voting_age是常量。
為了進一步閱讀,你應該了解C語言中的數據類型。
4. C語言中常量的類型
在C語言中,根據數據類型的不同,有5種不同類型的常量:
4.1 整型常量
顧名思義,整數常量是一個具有固定值的整數,也就是說,它不能具有像10、-8、2019這樣的小數值。
比如:
const long float pi = 3.14159;
const signed int limit = 20;
我們可以使用U和L后綴的不同組合來分別表示無符號修飾語和長修飾語,但要記住只能同時用它們其中一個。
我們可以進一步將其分為三類,即:
- 十進制數制常數:以10為基數。(0到9).例如,55 ,-20 ,1。在十進制數字系統中,不使用前綴。
- 八進制數系統常數:基數為8。(0到7).例如,034 ,087 ,011。在八進制數系統中,0用作前綴。
- 十六進制數制常數:以16為基數。(0到9,A到F)在十六進制數制中,用0x作為前綴。C語言提供了使用大寫或小寫字母表示十六進制數字的條件。
4.2 浮點或實數
我們使用浮點常量來表示數軸上的所有實數,包括所有的小數。我們可以用兩種方式來表示:
- 小數形式:包含小數點(.)是強制性的。比如2.0, 5.98 ,-7.23。
- 指數形式:必須包含帶符號的指數(e或E)。例如,萬有引力常數G = 6.67 x 10-11表示為6.67e-11或6.67E-11。
4.3 字符常量
字符常量用于為字符分配固定值,包括字母和數字或用單引號(' ')括起來的特殊符號。
每個字符都與其特定的數值ASCII(美國信息交換標準代碼)值相關聯。
除了這些值之外,C語言中還有一個稱為轉義序列的集合。
例如,'+ ',' A ', ' d '。
4.4 字符串常量
字符串常量是由一對固定的雙引號("")包圍的一組字符。
例如,"DataFlair","Hello world!"
4.5 枚舉常量
枚舉常量是在C語言中用戶自定義的數據類型,每個成員賦予一個整型常量。
例如,
enum rainbow = {Violet, Indigo, Blue, Green, Yellow, Orange, Red}
枚舉常量rainbow的整數如下:
Violet:0
Indigo:1
Blue:2
Green:3
Yellow:4
Orange:5
Red:6
下面是一段C代碼,闡述了一些常量的用法:
屏幕上的代碼:
輸出:
5. 總結
在這篇教程中,我們討論了C語言中變量和常量的區別。然后我們進一步細致的討論了如何定義C語言中常量或字符,以及其他可用的常量類型。
看完之后你是否已經充分掌握了C語言的常量和字符的知識了呢?