C++ 常數/文字
你好,未來的程序员!今天,我們將踏上一段令人興奮的旅程,探索 C++ 的常數和文字世界。別擔心這些術語聽起來有點嚇人 - 到了這堂課結束時,你將會像專家一樣輕鬆地使用它們!讓我們開始吧!
常數和文字是什麼?
在我們深入細節之前,先來了解常數和文字是什麼。把它們想像成你代碼中的“不可變”元素 - 如一周的天數或π的值。它們是你可靠的夥伴,無論你的程序中發生什麼,它們都不會改變。
整數文字
我們從熟悉的東西開始 - 數字!在 C++ 中,當我們直接在代碼中寫下一個整數時,我們稱之為整數文字。這就像在紙上寫下一個數字一樣 - 簡單直接。
int myAge = 25;
int numberOfPlanets = 8;
int negativeNumber = -10;
在這些例子中,25、8 和 -10 都是整數文字。它們只是那裡,作為數字存在,沒有小數點或其他花哨的東西。
但等等,還有更多!C++ 讓我們可以用不同的數字系統來寫整數文字:
int decimalNumber = 42; // 十進制(基數 10)
int octalNumber = 052; // 八進制(基數 8)- 以 0 開頭
int hexNumber = 0x2A; // 十六進制(基數 16)- 以 0x 開頭
int binaryNumber = 0b101010;// 二進制(基數 2)- 以 0b 開頭(C++14 之後)
別擔心八進制、十六進制或二進制看起來令人困惑。現在,只需知道它們是表示同一數字的不同的方式。這就像說不同的語言 - "forty-two"、"cuarenta y dos" 和 "quarante-deux" 都意味著同一件事!
浮點文字
現在,讓我們在混合中加入一些小數點!浮點文字是帶有小數點或科學記數法的數字。
float pi = 3.14159f;
double avogadroNumber = 6.022e23;
long double veryPreciseNumber = 1.23456789L;
在這裡,3.14159f 是一個 float 文字(注意末尾的 'f'),6.022e23 是一個 double 文字(e23 意味著 ×10^23),而 1.23456789L 是一個 long double 文字(注意末尾的 'L')。
布爾文字
布爾文字是最簡單的 - 只有两个!
bool isAwesome = true;
bool isBoring = false;
就這些!只是 true
和 false
。它們就像是編程世界的 "是" 和 "否"。
字符文字
字符文字代表單個字符,並用單引號括起來。
char firstInitial = 'J';
char newline = '\n';
char tab = '\t';
最後兩個例子顯示特殊字符:'\n' 表示新行,'\t' 表示制表符。這些被稱為轉義序列。
字符串文字
字符串文字是被雙引號括起的字符序列。
std::string greeting = "Hello, World!";
std::string quote = "To be, or not to be, that is the question.";
記住,字符串使用雙引號,而單個字符使用單引號!
定義常數
現在我們知道了文字,讓我們看看如何使用它們來創建常數 - 在我們的程序中不會改變的值。
#define 預處理器指令
定義常數的一種方法是使用 #define 預處理器指令:
#define PI 3.14159
#define MAX_STUDENTS 30
// 使用
double circleArea = PI * radius * radius;
if (numberOfStudents > MAX_STUDENTS) {
std::cout << "Class is full!";
}
define 指令告訴編譯器在編譯代碼之前將每個 PI 替換為 3.14159,將 MAX_STUDENTS 替換為 30。
const 關鍵字
定義常數的一種更現代且推薦的方法是使用 const 關鍵字:
const double PI = 3.14159;
const int MAX_STUDENTS = 30;
// 使用與 #define 相同
const 關鍵字告訴編譯器這些變量在初始化後不能被更改。
結合所有內容
讓我們用一個小程序來總結一下,該程序使用了各種常數和文字:
#include <iostream>
#include <string>
#define GAME_NAME "C++ Adventure"
int main() {
const int MAX_LEVEL = 100;
const double XP_MULTIPLIER = 1.5;
int currentLevel = 1;
double currentXP = 0.0;
bool hasCompletedTutorial = false;
char playerRank = 'D';
std::string playerName = "Newbie";
std::cout << "Welcome to " << GAME_NAME << "!" << std::endl;
std::cout << "Player: " << playerName << std::endl;
std::cout << "Level: " << currentLevel << "/" << MAX_LEVEL << std::endl;
std::cout << "XP: " << currentXP << std::endl;
std::cout << "Rank: " << playerRank << std::endl;
std::cout << "Tutorial completed: " << (hasCompletedTutorial ? "Yes" : "No") << std::endl;
return 0;
}
這個程序使用了我們討論過的所有類型的常數和文字。它使用 #define 定義遊戲名稱,使用 const 設置最大等級和 XP 倍數,並使用各種文字來初始化玩家數據。
結論
恭喜你!你已經踏出了進入 C++ 常數和文字世界的第一步。記住,這些是你程序中的積木 - 你將用來創造驚奇事物的不可變值。隨著你編程旅程的繼續,你會發現每天都會使用這些概念。持續練習,保持好奇心,並祝編程愉快!
文字類型 | 示例 | 描述 |
---|---|---|
整數 | 42, -10, 0, 1000 | 整數 |
八進制 | 052, 077 | 基數 8 的數字(以 0 開頭) |
十六進制 | 0x2A, 0xFF | 基數 16 的數字(以 0x 開頭) |
二進制 | 0b101010 | 基數 2 的數字(以 0b 開頭,C++14 之後) |
浮點 | 3.14, 2.5f, 1e10 | 帶小數點的數字或科學記數法 |
布爾 | true, false | 邏輯值 |
字符 | 'A', '\n', '\t' | 單個字符或轉義序列 |
字符串 | "Hello", "C++" | 字符序列 |
Credits: Image by storyset