日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++基础知识(三)—— 常量

發(fā)布時(shí)間:2023/12/9 c/c++ 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++基础知识(三)—— 常量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)常量(constant)是一個(gè)有固定值的表達(dá)式。


字(Literals)

字是用來(lái)在程序源碼中表達(dá)特定的值。在前面的內(nèi)容中我們已經(jīng)用了很多的字來(lái)給變量賦予特定的值。例如:

a = 5;

這句代碼中5就是一個(gè)字常量。

字常量(literal constant)可以被分為整數(shù)(Integer Numbers), 浮點(diǎn)數(shù)(Floating-Point Numbers),字符(Characters)和字符串(Strings)。

?

整數(shù)(Integer Numbers)

1776
707
-273

他們是整型常數(shù),表示十進(jìn)制整數(shù)值。注意表示整型常數(shù)時(shí)我們不需要些引號(hào)(quotes ("))或任何特殊字符。毫無(wú)疑問(wèn)它是個(gè)常量:任何時(shí)候當(dāng)我們?cè)诔绦蛑袑?776,我們指的就是1776這個(gè)數(shù)值。

除十進(jìn)制整數(shù)另外, C++還允許使用八進(jìn)制(octal numbers)和十六進(jìn)制(hexadecimal numbers)的字常量(literal constants)。如果我們想要表示一個(gè)八進(jìn)制數(shù),我們必須在它前面加上一個(gè)0字符(zero character),而表示十六進(jìn)制數(shù)我們需要在它前面加字符0x (zero, x)。例如以下字常量(literal constants)互相等值:

75?????// 十進(jìn)制 decimal
0113?// 八進(jìn)制 octal
0x4b?// 十六進(jìn)制 hexadecimal

所有這些都表示同一個(gè)整數(shù): 75 (seventy five) ,分別以十進(jìn)制數(shù),八進(jìn)制數(shù)和十六進(jìn)制數(shù)表示。

像變量一樣,常量也是有數(shù)據(jù)類型的。默認(rèn)的整數(shù)字常量的類型為int型。我們可以通過(guò)在后面加字母u或l來(lái)迫使它為無(wú)符號(hào)(unsigned)的類型或長(zhǎng)整型(long)。

75 // int 75u // unsigned int 75l // long 75ul // unsigned long ?

這里后綴u和l可以是大寫,也可以是小寫。


浮點(diǎn)數(shù)(Floating Point Numbers)

浮點(diǎn)數(shù)以小數(shù)(decimals)和/或指數(shù)冪( exponents)的形式表示。它們可以包括一個(gè)小數(shù)點(diǎn),一個(gè)e字符(表示"by ten at the Xth height",這里X是后面跟的整數(shù)值) ,或兩者都包括。

3.14159?// 3.14159
6.02e23?// 6.02 x 10^1023
1.6e-19?// 1.6 x 10^-19
3.0?????// 3.0

以上是包含小數(shù)的以C++表示的4個(gè)有效數(shù)值。第一個(gè)是PI,第二個(gè)是Avogadro數(shù)之一,第三個(gè)是一個(gè)電子(electron)的電量(electric charge)(一個(gè)極小的數(shù)值) – 所有這些都是近似值。最后一個(gè)是浮點(diǎn)數(shù)字常量表示數(shù)3。

浮點(diǎn)數(shù)的默認(rèn)數(shù)據(jù)類型為double。如果你想使用float或long double類型,可以在后面加f或l后綴,同樣大小寫都可以:

3.14159L // long double 6.02e23f // float


字符和字符串(Characters and strings)

此外還有非數(shù)字常量,例如:

'z'
'p'
"Hello world"
"How do you do?"?

前兩個(gè)表達(dá)式表示單獨(dú)的字符(character),后面兩個(gè)表示由若干字符組成的字符串(string) 。注意在表示單獨(dú)字符的時(shí)候,我們用單引號(hào)(single quotes (')),在表示字符串或多于一個(gè)字符的時(shí)候我們用雙引號(hào)(double quotes ("))。

當(dāng)以常量方式表示單個(gè)字符和字符串時(shí),必須寫上引號(hào)以便把他們和可能的變量標(biāo)識(shí)或保留字區(qū)分開(kāi),注意以下例子:

x
'x'

x 指一個(gè)變量名稱為 x, 而'x'指字符常量'x'。

字符常量和字符串常量各有特點(diǎn),例如escape codes,這些是除此之外無(wú)法在源程序中表示的特殊的字符,例如換行符 newline (\n) 或跳躍符tab (\t)。所有這些符號(hào)前面要加一個(gè)反斜杠inverted slash (\)。這里列出了這些escape codes:

\n換行符newline
\r回車carriage return
\t跳躍符tabulation
\v垂直跳躍vertical tabulation
\bbackspace
\fpage feed
\a警告alert (beep)
\'單引號(hào)single quotes (')
\"雙引號(hào)double quotes (")
\?問(wèn)號(hào)question (?)
\\反斜杠inverted slash (\)

例如:

'\n'
'\t'?
"Left \t Right"?
"one\ntwo\nthree"?

另外你可以數(shù)字ASCII 碼表示一個(gè)字符,這種表示方式是在反斜杠(\)之后加以8進(jìn)制數(shù)或十六進(jìn)制數(shù)表示的ASCII 碼。在第一種(八進(jìn)制octal)表示中,數(shù)字必需緊跟反斜杠(例如\23\40),第二種(十六進(jìn)制hexacedimal),必須在數(shù)字之前寫一個(gè)x字符(例如\x20\x4A)。

如果每一行代碼以反斜杠inverted slash (\)結(jié)束,字符串常量可以分多行代碼表示:

"string expressed in \
two lines"

你還可以將多個(gè)被空格blankspace、跳躍符tabulator、換行符newline或其他有效空白符號(hào)分隔開(kāi)的字符串常量連接在一起:

"we form" "a single" "string" "of characters"

最后如果我們想讓字符串使用寬字符(wchar_t),而不是窄字符(char),可以在常量的前面加前綴L:

L"This is a wide character string"

寬字符通常用來(lái)存儲(chǔ)非英語(yǔ)字符,比如中文字符,一個(gè)字符占兩個(gè)字節(jié)。

布爾型常量(Boolean Literals)

布爾型只有兩個(gè)有效的值:true和false,其數(shù)據(jù)類型為bool。


定義常量Defined constants (#define)

使用預(yù)處理器指令#define,你可以將那些你經(jīng)常使用的常量定義為你自己取的名字而不需要借助于變量。它的格式是:

#define identifier value

例如:

#define PI 3.14159265
#define NEWLINE '\n'
#define WIDTH 100

以上定義了三個(gè)常量。一旦做了這些聲明,你可以在后面的程序中使用這些常量,就像使用其它任何常量一樣,例如:

circle = 2 * PI * r;
cout << NEWLINE;

實(shí)際上編譯器在遇到#define指令的時(shí)候做的只是把任何出現(xiàn)這些 常量名(在前面的例子中為PI, NEWLINE或WIDTH)的地方替換成他們被定義為的代碼(分別為3.14159265, '\n'和100)。因此,由#define定義的常量被稱為宏常量macro constants。

#define 指令不是代碼語(yǔ)句,它是預(yù)處理器指令,因此指令行末尾不需要加分號(hào)semicolon (;) 。如果你在宏定義行末尾加了分號(hào)(;) ,當(dāng)預(yù)處理器在程序中做常量替換的時(shí)候,分號(hào)也會(huì)被加到被替換的行中,這樣可能導(dǎo)致錯(cuò)誤。


聲明常量declared constants (const)

通過(guò)使用const前綴,你可以定義指定類型的常量,就像定義一個(gè)變量一樣:

const int width = 100;
const char tab = '\t';
const zip = 12440;

如果沒(méi)有指定類型(如上面最后例子中最后一行),編譯器會(huì)假設(shè)常量為整型int。

總結(jié)

以上是生活随笔為你收集整理的C++基础知识(三)—— 常量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。