C++ 常量/字面量



常量是指程式不能更改的固定值,它們被稱為字面量

常量可以是任何基本資料型別,可以分為整數字面量、浮點字面量、字元、字串和布林值。

同樣,常量就像普通的變數一樣,只是它們的值在定義後不能修改。

整數字面量

整數字面量可以是十進位制、八進位制或十六進位制常量。字首指定基數或基:十六進位制為0x0X,八進位制為0,十進位制則沒有字首。

整數字面量還可以帶字尾,字尾是UL的組合,分別表示無符號和長整型。字尾可以是大寫或小寫,也可以按任意順序排列。

以下是一些整數字面量的示例:

212         // Legal
215u        // Legal
0xFeeL      // Legal
078         // Illegal: 8 is not an octal digit
032UU       // Illegal: cannot repeat a suffix

以下是各種型別整數字面量的其他示例:

85         // decimal
0213       // octal
0x4b       // hexadecimal
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

浮點字面量

浮點字面量包含整數部分、小數點、小數部分和指數部分。您可以使用十進位制形式或指數形式表示浮點字面量。

使用十進位制形式表示時,必須包含小數點、指數或兩者;使用指數形式表示時,必須包含整數部分、小數部分或兩者。帶符號的指數由eE引入。

以下是一些浮點字面量的示例:

3.14159       // Legal
314159E-5L    // Legal
510E          // Illegal: incomplete exponent
210f          // Illegal: no decimal or exponent
.e55          // Illegal: missing integer or fraction

布林字面量

有兩個布林字面量,它們是標準 C++ 關鍵字的一部分:

  • 值為true表示真。

  • 值為false表示假。

你不應該認為 true 的值等於 1,false 的值等於 0。

字元字面量

字元字面量用單引號括起來。如果字面量以 L(僅大寫)開頭,則它是一個寬字元字面量(例如,L'x'),應儲存在wchar_t型別的變數中。否則,它是一個窄字元字面量(例如,'x'),可以儲存在簡單的char型別變數中。

字元字面量可以是普通字元(例如,'x')、轉義序列(例如,'\t')或通用字元(例如,'\u02C0')。

在 C++ 中,某些字元在反斜槓之前具有特殊含義,它們用於表示換行符(\n)或製表符(\t)等。這裡列出了一些這樣的轉義序列程式碼:

轉義序列 含義
\\ \ 字元
\' ' 字元
\" " 字元
\? ? 字元
\a 警告或鈴聲
\b 退格
\f 換頁
\n 換行
\r 回車
\t 水平製表符
\v 垂直製表符
\ooo 一位到三位八進位制數
\xhh . . . 一位或多位十六進位制數

示例

以下示例顯示了一些轉義序列字元:

#include <iostream>
using namespace std;

int main() {
   cout << "Hello\tWorld\n\n";
   return 0;
}

編譯並執行上述程式碼後,將產生以下結果:

Hello   World

字串字面量

字串字面量用雙引號括起來。字串包含的字元類似於字元字面量:普通字元、轉義序列和通用字元。

您可以使用字串字面量將長行分成多行,並使用空格分隔它們。

以下是一些字串字面量的示例。這三種形式都是相同的字串。

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

定義常量

在 C++ 中,有兩種簡單的方法可以定義常量:

  • 使用#define預處理器。

  • 使用const關鍵字。

#define 預處理器

以下是使用 #define 預處理器定義常量的形式:

#define identifier value

示例

以下示例詳細說明了它:

#include <iostream>
using namespace std;

#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'

int main() {
   int area;  
   
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

編譯並執行上述程式碼後,將產生以下結果:

50

const 關鍵字

您可以使用const字首宣告具有特定型別的常量,如下所示:

const type variable = value;

示例

以下示例詳細說明了它:

#include <iostream>
using namespace std;

int main() {
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

編譯並執行上述程式碼後,將產生以下結果:

50

請注意,良好的程式設計習慣是將常量定義為大寫。

廣告