常量就是程序中不能被修改的固定的值,也稱(chēng)為字面值。
常量可以是任何基礎(chǔ)數(shù)據(jù)類(lèi)型,比如整型,浮點(diǎn)型,字符型,字符串和布爾類(lèi)型。
通常情況下常量被認(rèn)為是定義后不能更改的變量。
整數(shù)常量可以是十進(jìn)制、八進(jìn)制或十六進(jìn)制常量。對(duì)于十六進(jìn)制可以用 ox 或 OX 前綴來(lái)標(biāo)示,可以用 O 前綴來(lái)標(biāo)示八進(jìn)制,十進(jìn)制默認(rèn)不需要前綴標(biāo)志。
整數(shù)常量也可以與 U 和 L 后綴一起搭配使用,相應(yīng)的來(lái)表示無(wú)符號(hào)和長(zhǎng)整型。后綴對(duì)大小寫(xiě)不敏感。
下面是整型常量的一些例子:
212 // 合法
215u// 合法
0xFeeL // 合法
078 // 不合法: 8不是合法的八進(jìn)制
032UU // 不合法: U后綴不能重復(fù)使用
下面試其他的關(guān)于不同類(lèi)型的整型常量:
85 // 十進(jìn)制
0213 // 八進(jìn)制
0x4b // 十六進(jìn)制
30 // 整型
30u// 無(wú)符號(hào)整型
30l// 長(zhǎng)整型
30ul // 無(wú)符號(hào)整型
浮點(diǎn)常量由整數(shù)部分、小數(shù)點(diǎn)、小數(shù)部分和一個(gè)指數(shù)部分組成??梢允褂檬M(jìn)制或者指數(shù)的形式來(lái)表示浮點(diǎn)常量。
使用指數(shù)表示時(shí),必須包含小數(shù)點(diǎn),指數(shù),或兩者同時(shí)使用。相對(duì)應(yīng)的,使用十進(jìn)制形式表示,必須包含整數(shù)部分,小數(shù)部分,或兩者兼而有之。有符號(hào)指數(shù)可以用 e 或 E 來(lái)表示。
下面是一些浮點(diǎn)常量的一些例子:
3.14159 // 合法
314159E-5L// 合法
510E // 不合法: 指數(shù)部分不完整
210f // 不合法: 沒(méi)有整數(shù)部分
.e55 // 不合法: 無(wú)整數(shù)或小數(shù)部分
C++ 中只有兩個(gè)布爾類(lèi)型的常量,他們都是標(biāo)準(zhǔn) C++ 中的關(guān)鍵詞。
需要注意的是不可以將true看做是1,也不可以將false看做是0.
字符常量應(yīng)該用單引號(hào)括起來(lái)。如果字符常量以 L 開(kāi)頭(僅大寫(xiě)),那么它將是一個(gè)寬字符常量且需要使用 wchar_t 類(lèi)型的變量來(lái)存儲(chǔ)。否則,它將是個(gè)窄字符常量且存儲(chǔ)在 char 類(lèi)型的變量中。
字符常量可以還是一個(gè)普通字符(比如 'x')、轉(zhuǎn)義字符('\t')或者是一個(gè)通用字符(比如 '\u02C0').
C++ 中有一些使用反斜杠標(biāo)志的字符,他們具有特殊的意義,且可以用于表示換行(\n)或者 tab 鍵(\t)。下面是一些轉(zhuǎn)義字符的列表:
轉(zhuǎn)義字符 | 意義 |
---|---|
\\ | \字符 |
\' | '字符 |
\'' | ''字符 |
\? | ?問(wèn)號(hào)字符 |
\a | 警告 |
\b | 退格 |
\f | 換頁(yè) |
\n | 換行 |
\r | 回車(chē) |
\t | 橫向tab |
\ooo | 八進(jìn)制的一到三位數(shù) |
\xhh... | 一位或多位的十六進(jìn)制數(shù) |
下面是一些展示轉(zhuǎn)義字符的例子:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello\tWorld\n\n";
return 0;
}
當(dāng)上述代碼先編譯再執(zhí)行后,會(huì)出現(xiàn)如下結(jié)果:
Hello World
字符串常量需要使用雙引號(hào)括起來(lái)。字符串常量跟字符常量一樣,包括:普通字符、轉(zhuǎn)義字符和通用字符。
可以使用空格將一行字符分割成多個(gè)行。
如下是一些字符串常量的例子。所有的三種形式是相同的字符串。
"hello, dear"
"hello, \
dear"
"hello, " "d" "ear"
如下為 C++ 中的兩個(gè)簡(jiǎn)單的默認(rèn)常量。
如下是詳細(xì)的例子:
#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;
}
當(dāng)上述代碼先編譯再執(zhí)行后,會(huì)出現(xiàn)如下結(jié)果:
50
可以使用const前綴來(lái)聲明特殊類(lèi)型的常量,比如:
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;
}
當(dāng)上述代碼先編譯再執(zhí)行后,會(huì)出現(xiàn)如下結(jié)果:
50
注意:在程序首部定義常量是一個(gè)良好的編程習(xí)慣。