C++ 快速導覽 - 字面常數




C++ 的字面常數 (literal constant) 依基本內建型態 (primitive built-in type) 分類有

  • 整數字面常數 (integer literals)
  • 浮點數字面常數 (floating-point literals)
  • 布林字面常數 (Boolean literals)
  • 字元字面常數 (character literals)
  • 字串字面常數 (string literals)


整數字面常數



凡是以數字出現的都為十進位的 (decimal) 整數型態 (integral type) 的字面常數,如
1234
65
963
0


利用前綴可以將整數常數表示為八進位 (octal) 或十六進位 (hexadecimal)
前綴種類
0八進位
0x, 0X十六進位



065  //等同十進位數字53
077  //等同十進位數字63
0x65 //等同十進位數字101
0xff //等同十進位數字255


利用後綴可以標明整數為 long 型態,也就是長整數,或是標明為無正負號整數
後綴種類
l, L長整數
u, U無正負號整數


浮點數



凡是以帶小數點的數字都為浮點數型態 (floating-point type) 的字面常數,如
0.125
22.69896
101.002
33.


利用後綴可以標明浮點數的種類,如
後綴種類
f, Ffloat
l, Llong double


浮點常數也可以用科學記號的方法來表示,如
1.125e-1
3.521e4
5.1203E2
1e2


字母 e 前後分成兩部份,如第一個數字



e 之前的 1.125 是標準化後的數字, e 之後的數字則為 10 的次方數,因此,這個數字會等於 1.125×10-1


布林字面常數



布林字面常數為 truefalse 兩者之一, true 表示邏輯上的「真」, false 則是邏輯上的「假」。


字元字面常數



凡是以單引號夾住的單一符號都是字元字面常數,如
'a'
'%'
'S'
'3'
']'
' '


C++ 中可以直接使用 ASCII 編碼的符號,也就是在英文鍵盤上可以直接打出來的符號, ASCII 也可以用 8 進位或 16 六進位的表示方式。 8 進位須以反斜線開頭,其後接 8 進位數字,如
'\141' //與 'a' 相同
'\45'  //與 '%' 相同
'\123' //與 'S' 相同
'\63'  //與 '3' 相同 


16 進位則以 \x 開頭,其後接 16 進位數字,如
'\x61' //與 'a' 相同
'\x25' //與 '%' 相同
'\x53' //與 'S' 相同
'\x33' //與 '3' 相同 


有些不可見字元被稱為跳脫序列 (excape sequence) ,可用反斜線 \ 加上代表該字元的符號來表示,以下是完整列表
跳脫序列的字元功能
\a響鈴
\b倒退鍵
\f跳頁
\n印出新列
\r歸位符號
\ttab 鍵
\v垂直定位符號
\\印出反斜線
\?印出問號
\'印出單引號
\"印出雙引號


字元字串字面常數



字元字串字面常數 (character string literals) 為用雙引號 " " 圍起來的 ASCII 字元,如
"Hello"
"333-3333"
"My Game.."
"mmmh" 


由於字串 (string) 使用的非常頻繁,因此實際上字串屬於字元陣列 (array) ,可以用陣列的方式處理字串。字串是以 null 字元 (null character) 結尾,因此編譯器會在這樣的字元陣列結尾自動加上 '\0' ,也就是 ASCII 的 null 字元。


另有一種寬字串字面常數,這是在雙引號前加上字首 L ,如
L"Hello"
L"333-3333"
L"My Game.."
L"mmmh" 


寬字串字面常數為常數寬字元 (constant wide character) 的型態組成的字元陣列,因此寬字串字面常數的結尾為型態為寬字串的 null 字元。


中英文術語對照
字面常數literal constant
基本內建型態primitive built-in type
整數字面常數integer literals
浮點數字面常數floating-point literals
布林字面常數Boolean literals
字元字面常數character literals
字串字面常數string literals
十進位的decimal
整數型態integral type
八進位octal
十六進位hexadecimal
浮點數型態floating-point type
跳脫序列excape sequence
字元字串字面常數character string literals
字串string
陣列array
null 字元null character
常數寬字元constant wide character


您可以繼續參考
基本概念
標記
基本資料型態


相關目錄
回 C++ 快速導覽
回 C++ 教材
回首頁


參考資料
C++ reference
cplusplus.com
Cprogramming.com C++ Tutorial

C++ Primer, Fourth Edition, Stanley B. Lippman...


本文於 2013 年 1 月更新

沒有留言: