一個常量(constant)是一個有固定值的表達式。
像變量一樣,常量也是有數據類型的。默認的整數字常量的類型為int型。我們可以通過在后面加字母u或l來迫使它為無符號(unsigned)的類型或長整型(long)。
75 // int75u // unsigned int75l // long75ul // unsigned long浮點數的默認數據類型為double。如果你想使用float或long double類型,可以在后面加f或l后綴,同樣大小寫都可以:
3.14159L // long double6.02e23f // float意在表示單獨字符的時候,我們用單引號(single quotes (')),在表示字符串或多于一個字符的時候我們用雙引號(double quotes ("))轉義字符:
另外你可以數字ASCII 碼表示一個字符,這種表示方式是在反斜杠(/)之后加以8進制數或十六進制數表示的ASCII 碼。在第一種(八進制octal)表示中,數字必需緊跟反斜杠(例如/23或/40),第二種(十六進制hexacedimal),必須在數字之前寫一個x字符(例如/x20或/x4A)。
最后如果我們想讓字符串使用寬字符(wchar_t),而不是窄字符(char),可以在常量的前面加前綴L:
L"This is a wide character string"寬字符通常用來存儲非英語字符,比如中文字符,一個字符占兩個字節。
實際上編譯器在遇到#define指令的時候做的只是把任何出現這些 常量名(在前面的例子中為PI, NEWLINE或WIDTH)的地方替換成他們被定義為的代碼(分別為3.14159265, '/n'和100)。因此,由#define定義的常量被稱為宏常量macro constants。
#define 指令不是代碼語句,它是預處理器指令,因此指令行末尾不需要加分號semicolon (;) 。如果你在宏定義行末尾加了分號(;) ,當預處理器在程序中做常量替換的時候,分號也會被加到被替換的行中,這樣可能導致錯誤。
通過使用const前綴,你可以定義指定類型的常量,就像定義一個變量一樣:
const int width = 100;const char tab = '/t';const zip = 12440;如果沒有指定類型(如上面最后例子中最后一行),編譯器會假設常量為整型int。
新聞熱點
疑難解答