字面值常量

2021-10-19 17:58:51 字數 1138 閱讀 9230

乙個形如 39 的值被稱作字面值常量 (literal),每個字面值常量都對應一種資料型別,字面值常量的形式和值決定了它的資料型別。

整型字面值寫作十進位制數、八進位制數或十六進製制數的形式。以0開頭的整數代表八進位制數,以0x0x開頭的代表十六進製制數。下面的任意一種形式都表示數值 20:

20  /* 十進位制 */

024 /* 八進位制 */

0x14 /* 十六進製制 */

二進位制由 0 和 1 兩個數字組成,使用時必須以0b0b(不區分大小寫) 開頭。

整型字面值具體的資料型別由它的值和符號決定。預設情況下,十進位製字面值是帶符號數,八進位制和十六進製製字面值既可能是帶符號的也可能是無符號的。

20  /* 十進位制 */

024 /* 八進位制 -> 十進位制:2 * (8^1) + 4 * (8^0) = 16 + 4 = 20 */

0x14 /* 十六進製制 -> 十進位制:1 * (16^1) + 4 * (16^0) = 16 + 4 = 20 */

十進位製字面值的型別是 int、long 和 long long 中尺寸最小的那個,當然前提是這種型別要能容納下當前的值。八進位制和十六進製製字面值的型別是能容納其數值的 int、unsigned int、long、unsigned long、long long 和 unsigned long long 中的尺寸最小者。如果乙個字面值連與之關聯的最大的資料型別都放不下,將產生錯誤。型別 short 沒有對應的字面值。

儘管整型字面值可以儲存在帶符號資料型別中,但嚴格來說,十進位製字面值不會是負數。

如果我們使用了乙個形如-42的負十進位製字面值,那個負號並不在字面值之內,它的作用僅僅是對字面值取負值而己。

浮點型字面值表現為乙個小數或以科學計數法表示的指數,其中指數部分用ee標識:

3.14159

3·14159e0

0· 0e0

.001

預設的,浮點型字面值是乙個double

c++ primer

c 字面值常量

字面值常量 literal constant 字面值 是指只能用它的值稱呼它,常量 是指其值不能修改。每個字面值都有相應的型別,3.14是double型,2是int型。只有內建型別存在字面值。1.整形字面值規則 整形字面值常量可以用十進位制 八進位制 十六進製制表示。20 dec 024 oct 以...

C 字面值常量

乙個形如42的值被稱為字面值常量 literal 每個字面值常量都對應一種資料型別,字面值常量的形式和值決定了它的資料型別。字面值常量的型別有 1 整型字面值 整型字面值可以寫作三種形式 十進位制數 八進位制數和十六進製制數。以0開頭的整數代表八進位制數,以0x或0x開頭的代表十六進製制數。如下為數...

C 中字面值常量和字面值型別

乙個形如42的值被稱為字面值常量。字面值常量的形式和值決定了常量的型別。例如0x42是16進製表示的整型常量。a 是char型字面值。字面值常量顧名思義由字面意思表示,是常量。字面值常量在程式中是直接表示的,整型直接寫出大小,字元直接寫出字元。乙個字面值常量在編譯時被直接解析為立即數,編譯器內部維護...