C++ 第一階段 基本語法 - 第一節:變量與數據類型詳解

目錄

一、變量與數據類型概述

1.1 什么是變量?

1.2 數據類型分類

二、基本數據類型詳解

2.1 整型(int, short, long)

2.1.1 常見整型類型

2.1.2 代碼示例

2.1.3 注意事項

2.2 浮點型(float, double)

2.2.1 浮點型特點

2.2.2 代碼示例

2.2.3 精度問題

2.3 字符型(char)

2.3.1 字符型特性

2.3.2 代碼示例

2.3.3 常見轉義字符

2.4 布爾型(bool)

2.4.1 布爾型特點

2.4.2 代碼示例

三、枚舉類型(enum)

3.1 基本枚舉定義

3.2 C++11 強類型枚舉

四、變量命名規則與最佳實踐

4.1 命名規則

4.2 命名風格

4.3 初始化建議

五、總結


一、變量與數據類型概述

1.1 什么是變量?

變量是程序中用于存儲數據的容器,每個變量需要指定一個數據類型,以決定:

  • 存儲空間大小(內存占用)
  • 數據的取值范圍
  • 可執行的操作類型

1.2 數據類型分類

C++ 是靜態類型語言,變量類型在聲明時確定。基礎數據類型包括:

  • 整型(int, short, long)
  • 浮點型(float, double)
  • 字符型(char)
  • 布爾型(bool)
  • 枚舉型(enum)

二、基本數據類型詳解

2.1 整型(int, short, long)

2.1.1 常見整型類型
類型占用字節范圍(32位系統)
short2-32768 ~ 32767
int4-2147483648 ~ 2147483647
long4同 int
long long8±9.2e18
2.1.2 代碼示例
#include <iostream>
using namespace std;int main() {int age = 25;             // 聲明int變量short temperature = -5;   // 聲明short變量long population = 7800000000L; // long變量需加后綴Lcout << "Age: " << age << endl;cout << "Temperature: " << temperature << endl;cout << "Population: " << population << endl;return 0;
}

輸出

Age: 25
Temperature: -5
Population: 7800000000
2.1.3 注意事項
  • 32位系統下?int?通常為 4 字節,64位系統可能不同
  • 使用?LLONG_MAX?等常量查看最大值(需包含?<climits>?頭文件)

2.2 浮點型(float, double)

2.2.1 浮點型特點
類型占用字節精度表示范圍
float46-7 位有效數字3.4e-38 ~ 3.4e+38
double815-16 位有效數字1.7e-308 ~ 1.7e+308
2.2.2 代碼示例
#include <iostream>
using namespace std;int main() {float pi = 3.14159f;      // float變量需加后綴fdouble gravity = 9.81;    // double默認類型double scientific = 6.022e23; // 科學計數法cout << "Pi: " << pi << endl;cout << "Gravity: " << gravity << endl;cout << "Scientific: " << scientific << endl;return 0;
}

輸出

Pi: 3.14159
Gravity: 9.81
Scientific: 6.022e+23
2.2.3 精度問題
float a = 0.1f;
float b = 0.2f;
if (a + b == 0.3f) { // 實際不會成立!cout << "Equal";
} else {cout << "Not equal"; // 輸出此行
}

原因:浮點數在計算機中是以二進制存儲的,某些十進制小數無法精確表示。


2.3 字符型(char)

2.3.1 字符型特性
  • 占用 1 字節(8 bit)
  • 實際存儲的是 ASCII 碼值(0~127)
  • 可直接操作字符或其對應的整數值
2.3.2 代碼示例
#include <iostream>
using namespace std;int main() {char grade = 'A';         // 字符常量char newline = '\n';      // 轉義字符char ascii_value = 65;    // 直接使用ASCII碼cout << "Grade: " << grade << endl;cout << "ASCII 65: " << ascii_value << endl;cout << "Newline: " << newline << "END" << endl;return 0;
}

輸出

Grade: A
ASCII 65: A
Newline: 
END
2.3.3 常見轉義字符
轉義字符含義
\n換行
\t制表符
\\反斜杠
\"雙引號
\'單引號

2.4 布爾型(bool)

2.4.1 布爾型特點
  • 占用 1 字節
  • 取值僅能是?true?或?false
  • 在條件判斷中自動轉換:
    • 非零值 →?true
    • 零值 →?false
2.4.2 代碼示例
#include <iostream>
using namespace std;int main() {bool is_raining = true;bool has_error = 0; // 0 → falseif (is_raining) {cout << "Bring an umbrella!" << endl;}if (!has_error) {cout << "No error detected." << endl;}return 0;
}

輸出

Bring an umbrella!
No error detected.

三、枚舉類型(enum)

3.1 基本枚舉定義

#include <iostream>
using namespace std;int main() {enum Color { RED, GREEN, BLUE }; // 自動從0開始編號Color my_color = GREEN;cout << "RED = " << RED << endl;    // 輸出 0cout << "GREEN = " << GREEN << endl; // 輸出 1cout << "BLUE = " << BLUE << endl;  // 輸出 2return 0;
}

3.2 C++11 強類型枚舉

enum class Direction { UP, DOWN, LEFT, RIGHT }; // 不會隱式轉換為int
Direction dir = Direction::UP;// 錯誤:不能直接比較int和Direction
// if (dir == 0) { ... }// 正確方式:
if (dir == Direction::UP) {cout << "Going up!" << endl;
}

四、變量命名規則與最佳實踐

4.1 命名規則

  • 只能使用字母、數字和下劃線(_
  • 不能以數字開頭
  • 區分大小寫(age?≠?Age
  • 不可使用C++關鍵字(如?int,?class

4.2 命名風格

風格示例適用場景
駝峰命名法myVariable變量名
蛇形命名法my_variable常量/宏定義
全大寫MAX_VALUE全局常量

4.3 初始化建議

// 推薦方式(C++11統一初始化)
int x{5};      // 值初始化
int y{};       // 零初始化
int z{10.5};   // 編譯錯誤(防止隱式窄化)// 不推薦方式
int a = 5;     // C風格初始化
int b = {5};   // C++11列表初始化

五、總結

數據類型用途示例
int存儲整數int count = 100;
float/double存儲小數double price = 9.99;
char存儲單個字符char letter = 'Z';
bool存儲邏輯值bool flag = true;
enum定義命名的整數常量集合enum Status { OK, ERROR };

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84058.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84058.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84058.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CppCon 2017 學習:CNL: A Compositional Numeric Library

你說的這段關于浮點數的問題總結得很精準&#xff0c;我幫你整理一下&#xff0c;讓理解更清晰&#xff1a; The Problem with Floating-Point&#xff08;浮點數的問題&#xff09; 復雜的表示結構 浮點數由符號位 &#xff0c;有效數&#xff08;significand/mantissa&…

linux基礎重定向及組合重定向

一、基礎重定向操作符 ?類別? ?操作符? ?含義? ?示例? ?備注? ?標準輸出? > 覆蓋寫入 stdout 到文件 ls > file.txt 文件不存在則創建&#xff0c;存在則清空內容 >> 追加 stdout 到文件末尾 date >> log.txt 保留原有內容 ?標準…

佰力博科技與您探討鐵電分析儀適用場景

鐵電分析儀是一種用于測試和研究鐵電材料性能的精密儀器&#xff0c;其適用場景非常廣泛&#xff0c;涵蓋了材料科學、物理學、電子工程等多個領域。 1、材料科學與工程 鐵電分析儀廣泛應用于鐵電材料的研究&#xff0c;包括薄膜、厚膜、塊體材料以及電子陶瓷等。它能夠測試材料…

JVM 內存模型與垃圾回收機制全解析:架構、算法、調優實踐

Java 作為一門面向對象的編程語言&#xff0c;其核心優勢之一是 “一次編寫&#xff0c;到處運行” 的跨平臺特性。這一特性背后&#xff0c;Java 虛擬機&#xff08;JVM&#xff09;扮演著至關重要的角色。JVM 不僅負責解釋執行字節碼&#xff0c;還通過內存管理和垃圾回收機制…

自然語言處理相關基本概念

基本概念章節總結 一、語言學&#xff08;Linguistics&#xff09; 定義 研究語言的本質、結構和發展規律的科學&#xff0c;涵蓋語音、文字、語法等屬性。分支包括歷時語言學、共時語言學、描述語言學等。 核心內容 分析語言的形態、句法、語義等層面&#xff0c;如詞素&…

Vue購物車應用實現教程

文章目錄 1. 項目介紹2. 開發環境準備3. 設計購物車界面4. 創建Vue實例和數據模型5. 實現購物車功能5.1 從本地存儲加載數據5.2 監聽數據變化保存到本地存儲5.3 實現全選/反選功能5.4 計算選中商品的總價和總數量5.5 實現修改商品數量功能5.6 實現刪除商品功能5.7 實現結算功能…

雙因子認證如何讓Windows系統登錄更安全?SLA操作系統雙因素認證解決方案深度解析

引言&#xff1a;數字化轉型下的身份認證危機 在云計算與遠程辦公普及的2025年&#xff0c;企業信息系統正面臨前所未有的安全挑戰。微軟Azure Virtual Desktop漏洞事件、Citrix數據泄露等安全事件頻發&#xff0c;暴露出傳統密碼認證體系的致命缺陷。據《2025年云安全威脅報告…

FPGA基礎 -- Verilog語言要素之值集合

一、Verilog 值集合&#xff08;Value Set&#xff09; Verilog 是一種面向硬件建模的描述語言&#xff0c;為了更真實地模擬硬件行為&#xff0c;它并不僅僅像 C 語言那樣只有 0 和 1 兩種值&#xff0c;而是采用了四值邏輯&#xff08;Four-valued logic system&#xff09;…

開源一個芯片自由的脫機下載器

一、什么是脫機下載器 簡單來說&#xff0c;脫機下載器就是在不連接電腦、不用專業軟件的情況下&#xff0c;也能幫你把程序燒錄進芯片的工具。只要插上電源、按個按鈕&#xff0c;固件就自動下載進 MCU&#xff0c;非常適合量產、售后、維修等場景。 二、芯片自由的背后&…

Rust 學習筆記:關于模式匹配的練習題

Rust 學習筆記&#xff1a;關于模式匹配的練習題 Rust 學習筆記&#xff1a;關于模式匹配的練習題問題一問題二問題三 Rust 學習筆記&#xff1a;關于模式匹配的練習題 參考視頻&#xff1a; https://www.bilibili.com/video/BV1YxojYJESm 問題一 以下代碼能否通過編譯&…

利用tkinter函數構造MD5加密的可視化操作界面

GitHub文檔地址&#xff1a; https://github.com/gao7025/auto_entry_md5.git 引言 利用tkinter構造一個圖形界面的創建函數&#xff0c;主要實現了文件選擇、MD5加密處理、結果預覽和下載等功能。下面是主要涉及的功能模塊&#xff1a;主框架、文件選擇部分、MD5加密部分、結…

ICEM CFD網格生成 | 基本概念與界面工具

基本概念◆ 名稱定義 網格&#xff1a;網格是空間離散的單元&#xff0c;用于如下數值仿真 結構 流體 電磁 其他 單元 0D – 節點單元 質量點 約束&#xff0c;加載位置 1D –線單元 Bars, beams, rods, springs 2D 網格邊界 2D – 表面/殼單元 - 四邊形 - 三角…

簡化您的工作流程:在 Azure 中構建高效的邏輯應用程序

簡介 在當今的數字化環境中,自動化工作流程和服務集成對于追求效率和敏捷性的企業至關重要。Azure Logic Apps 使開發人員和 IT 專業人員能夠創建集成應用、數據、服務和系統的自動化工作流程。在本文中,我們將逐步講解使用 Azure 門戶創建 Logic Apps 的過程,并通過演示來說…

AI 技術落地實戰:開發流程優化、行業場景重塑與前沿應用洞察

在人工智能技術如火如荼發展的當下&#xff0c;AI 工具、大模型以及它們在各行業的應用&#xff0c;正以前所未有的態勢重塑著開發者的工作模式和各領域的發展格局。從智能編碼助手讓編程變得高效便捷&#xff0c;到自動化測試平臺提升軟件質量&#xff0c;從大模型在垂直行業的…

文本生成AI+圖像識別:電商詳情頁信息提取實戰

行業問題&#xff1a;傳統采集難以應對“圖文視頻化”的電商信息 在電商平臺不斷“視頻化”的趨勢下&#xff0c;傳統的網頁采集手段正逐漸失效。以抖音為例&#xff0c;商品信息已不僅限于圖文詳情&#xff0c;而是通過短視頻、圖像混排、語音解說等形式呈現。商品的名稱、優…

linux權限基礎

權限的概念 linux中&#xff0c;權限是用于控制【用戶】對 【文件】進行操作控制的工具。用戶權限文件權限 用戶權限 用戶 用戶組&#xff1a;具有相同特性的用戶的集合體。 文件權限 linux中&#xff0c;一切皆文件&#xff0c;包括普通文件&#xff0c;目錄&#xff0c;文件…

讓C++處理JSON類型配置文件更輕松-Hjson-cpp詳解

讓C處理JSON類型配置文件更輕松-Hjson-cpp詳解 一、Hjson-Cpp簡介Hjson-Cpp簡介核心特性安裝與集成基本用法示例常用API說明與JSON互轉錯誤處理性能建議高級特性1. 類型安全訪問2. 文件操作3. 自定義解析規則 二、使用教程下載使用 一、Hjson-Cpp簡介 Hjson-Cpp簡介 Hjson-Cp…

單例模式的好處

為什么要使用單例模式 1.資源管理&#xff1a; 唯一性&#xff1a;某些資源在整個應用程序中只需要一個實例&#xff0c;例如日志記錄器、配置管理器、數據庫連接池等。單例模式可以確保這些資源的唯一性&#xff0c;避免重復創建和管理。 全局訪問&#xff1a;單例模式提供了…

LangChain 結構化輸出指南

LangChain 結構化輸出指南 概述 對于許多應用程序&#xff08;如聊天機器人&#xff09;&#xff0c;模型需要直接用自然語言回應用戶。然而&#xff0c;在某些場景下&#xff0c;我們需要模型以結構化格式輸出。例如&#xff0c;我們可能希望將模型輸出存儲在數據庫中&#…

探究webView與html的通訊

最近出來個新需求&#xff1a; 需求描述&#xff1a; 將uniapp的代碼打包成一個app&#xff0c;并實現原本的功能。 原uniapp是一個H5項目&#xff0c;主要的步驟流程是上傳用戶的身份證進行二要素認證&#xff0c;成功后再進行三方活體認證&#xff0c;然后三方回跳到項目中的…