乙個形如42
的值被稱為字面值常量(literal)
。每個字面值常量都對應一種資料型別,字面值常量的形式和值
決定了它的資料型別。
字面值常量的型別有
(1)整型字面值
整型字面值可以寫作三種形式:十進位制數
、八進位制數
和十六進製制數
。以0
開頭的整數代表八進位制數,以0x或0x
開頭的代表十六進製制數。如下為數值20
的三種形式寫法:20 /*十進位制*/,024/*八進位制*/,0x14/*十六進製制*/
。整型字面值具體的資料型別由它的值和符號決定。
(2)浮點數字面值
浮點型字面值表現為乙個小數或科學計數法表示的指數,其中指數部分用e或e
標識:
3.14159—3.14159e0—0.—0e0—.001
預設的,浮點型字面值是乙個double
型的值。
(3)字元字面值
由單引號括起來的乙個字元為char
型字面值。
'a' //字元字面值
有兩類字元是程式設計師不能直接使用的,一類是不可列印(nonprintable)
的字元,如退格或其他控制字元,因為它們沒有可視的圖符;另一類是在c++語言中有特殊含義的字元(單引號、雙引號、問號、反斜線)。在這些情況下需要用到轉義序列(escape sequence)
,轉義序列均以反斜線
作為開始,c++語言規定的轉義序列包括:
名稱字元
換行符\n
回車符\r
反斜線\\
單引號\'
雙引號\"
縱向製表符
\v
橫向製表符
\t
退格符\b
報警(響鈴)符
\a
問號\?
進紙符\f
(4)字串字面值
雙引號括起來的零個或多個字元構成字串字面值。
"hello world!" //字串字面值
字串字面值的型別實際上是由常量字元構成的陣列(array)
,編譯器在每個字串的結尾處新增乙個空字元('\0'
),因此,字串字面值的實際長度要比它的內容多1。如,字面值'a'
表示的就是單獨的字元a
,而字串"a"
則代表了乙個字元的陣列,該陣列包含兩個字元:乙個是字母a
,另乙個是空字元
。
如果兩個字串字面值位置緊鄰且僅由空格、縮排和換行符
分隔,則它們實際上是一種整體。當書寫的字串字面值比較長,寫在一行裡不太合適時,就可以採取分開書寫的方式:
(6)指標字面值// 分多行書寫的字串字面值
和std::cout<<"a really,really long string literal "
"that spans two lines"<(5)布林字面值
布林型別的字面值有兩個:true
false
bool test=false;
指標字面值為:nullptr
c 字面值常量
字面值常量 literal constant 字面值 是指只能用它的值稱呼它,常量 是指其值不能修改。每個字面值都有相應的型別,3.14是double型,2是int型。只有內建型別存在字面值。1.整形字面值規則 整形字面值常量可以用十進位制 八進位制 十六進製制表示。20 dec 024 oct 以...
字面值常量
乙個形如 39 的值被稱作字面值常量 literal 每個字面值常量都對應一種資料型別,字面值常量的形式和值決定了它的資料型別。整型字面值寫作十進位制數 八進位制數或十六進製制數的形式。以0開頭的整數代表八進位制數,以0x或0x開頭的代表十六進製制數。下面的任意一種形式都表示數值 20 20 十進位...
C 中字面值常量和字面值型別
乙個形如42的值被稱為字面值常量。字面值常量的形式和值決定了常量的型別。例如0x42是16進製表示的整型常量。a 是char型字面值。字面值常量顧名思義由字面意思表示,是常量。字面值常量在程式中是直接表示的,整型直接寫出大小,字元直接寫出字元。乙個字面值常量在編譯時被直接解析為立即數,編譯器內部維護...