【C++學習篇】:基礎

文章目錄

  • 前言
    • 1. main() 函數
    • 2. 變量賦值
    • 3. cin和cout的一些細節
    • 4. 基本類型運算
    • 5. 內存占用
    • 6. 引用
    • 7. 常量


前言

在這里插入圖片描述

  • C++ 語法的學習整理,作為個人總結使用。

1. main() 函數

#include <iostream>   //使用輸入輸出流庫(cin,cout);頭文件語句不需要加分號:;
using namespace std;   //使用標準庫中的一些常用功能,不需要每次都寫上std::這個前綴int main() {   //C++程序的入口cout << "Hello, World!" << endl;   //cout是C++中的輸出流對象,能把數據輸出到屏幕上;<<是插入運算符,表示把右邊的內容插入到輸出流中;endl表示換行return 0;   //程序結束,返回0表示成功
}
  • 使用std::
#include <iostream>   //使用輸入輸出流庫(cin,cout);頭文件語句不需要加分號:;int main() {   //C++程序的入口std::cout << "Hello, World!" << std::endl;   //cout是C++中的輸出流對象,能把數據輸出到屏幕上;<<是插入運算符,表示把右邊的內容插入到輸出流中;endl表示換行return 0;   //程序結束,返回0表示成功
}

2. 變量賦值

#include <iostream>
using namespace std;int main() {int myNumber;   //整數類型變量myNumber = 42;   //賦值42cout << "myNumber:" << myNumber << endl;int userAge;   //整數類型變量cout << "請輸入你的年齡:";   //提示信息cin >> userAge;   //cin是C++中的輸入流對象,負責從鍵盤讀取數據;>>是提取運算符,表示把用戶輸入的內容提取出來,然后存儲到userAge里cout << "userAge:" << userAge << endl;return 0;
}
  • 其他變量類型
#include <iostream>
using namespace std;int main() {float price = 9.99;   //浮點數變量double PI = 3.14159;   //double能存儲更多位的小數char grade = 'A';   //字符變量string name = "Alice";   //字符串變量cout << "price:" << price << endl;cout << "PI:" << PI << endl;cout << "grade:" << grade << endl;cout << "name:" << name << endl;return 0;
}

3. cin和cout的一些細節

  • cin無法讀入空格
#include <iostream>
#include <string>
using namespace std;int main() {string fullName;cout << "請輸入你的全名:";getline(cin, fullName);   //getline讀取輸入,遇到換行符停止,而cin遇到空格也會停止cout << "fullName:" << fullName << endl;return 0;
}
  • cout輸出格式化
#include <iostream>
#include <iomanip>   //使用iomanip庫,用于格式化輸出
using namespace std;int main() {float price1 = 19.99, price2 = 5.49, price3 = 12.30;cout << "價格列表:" << endl;//setw(10)設置輸出的寬度為10個字符;fixed強制浮點數以固定小數位數的形式輸出;setprecision(2)設置輸出為兩位小數cout << "price1:" << setw(10) << fixed << setprecision(2) << price1 << endl;cout << "price2:" << setw(10) << fixed << setprecision(2) << price2 << endl;cout << "price3:" << setw(10) << fixed << setprecision(2) << price3 << endl;return 0;
}

4. 基本類型運算

  • 基本運算符:
    – 加法:+
    – 減法:-
    – 乘法:*
    – 除法:/
    – 取余:%
    – 自增:++
    – 自減:- -
  • 運算符優先級:
    – 乘法,除法,取余高于加法和減法
    – 給運算加上 括號( ) 提升運算優先級
#include <iostream>
using namespace std;int main() {int a = 1, b = 2, c = 3, d = 4, result1, result2;//沒有括號的運算result1 = a + b * c - d;   //按照優先級順序進行運算cout << "沒有括號的結果: " << result1 << endl;//有括號的運算result2 = (a + b) * (c - d);  //使用括號改變優先級cout << "有括號的結果: " << result2 << endl;return 0;
}

5. 內存占用

  • 內存單位之間的關系:
    – 1字節 (B) = 8位 (bits)
    – 1千字節 (KB) = 1024字節 (B),210 = 1024
    – 1兆字節 (MB) = 1024千字節 (KB)
    – 1吉字節 (GB) = 1024兆字節 (MB)
    – 1太字節 (TB) = 1024吉字節 (GB)
  • 數據類型的內存占用:使用 sizeof() 運算符查看
#include <iostream>
using namespace std;int main() {cout << "char 類型占用: " << sizeof(char) << " 字節" << endl;cout << "int 類型占用: " << sizeof(int) << " 字節" << endl;cout << "float 類型占用: " << sizeof(float) << " 字節" << endl;cout << "double 類型占用: " << sizeof(double) << " 字節" << endl;cout << "bool 類型占用: " << sizeof(bool) << " 字節" << endl;cout << "指針類型占用: " << sizeof(int*) << " 字節" << endl;return 0;
}

6. 引用

  • 引用是變量的別名。通過引用,可以直接操作原來的變量,而不是它的副本。
  • 聲明引用時,必須立刻用一個已有的變量初始化它。
  • 引用初始化后,就不能再讓它指向其他變量。
  • 引用只是一個別名,它沒有自己的內存地址,而是和原變量共享同一個地址。
#include <iostream>
using namespace std;int main() {int a = 100;int b = a;   //普通復制int& ref_a = a;   //引用//修改 b,a 不會改變b = 200;cout << "修改 b 后,a 的值: " << a << endl;//修改 ref_a,a 會改變ref_a = 300;cout << "修改 ref_a 后,a 的值: " << a << endl;return 0;
}

7. 常量

  • 常量的值在設置后是不能改變的。
#include <iostream>
using namespace std;int main() {const int value = 100;   //使用const關鍵字定義一個常量cout << "value: " << value << endl;//修改常量會導致編譯錯誤value = 200;return 0;
}
  • 指向常量的指針:指向常量的指針可以指向不同的對象,但不能通過該指針修改它指向的對象。
#include <iostream>
using namespace std;int main() {const int value = 100;   //使用const關鍵字定義一個常量const int* ptr = &value;   //指向常量的指針cout << "value: " << *ptr << endl;//通過指針修改常量的值會導致編譯錯誤*ptr = 50;return 0;
}
  • 常量指針:指針本身是常量,一旦初始化,它就不能指向其他的對象,但可以通過它修改指向的對象的值。
#include <iostream>
using namespace std;int main() {int value = 100;   //變量int* const ptr = &value;   //常量指針cout << "value: " << *ptr << endl;//修改指針指向的對象的值*ptr = 50;cout << "value: " << *ptr << endl;//修改指針指向的對象會導致編譯錯誤int b = 200;ptr = &b;return 0;
}
  • C++11 引入了 constexpr 關鍵字,用于定義在編譯時就能確定值的常量表達式
#include <iostream>
using namespace std;constexpr int sum(int x,int y) {return x + y;
}int main() {constexpr int result = sum(5,4);   //在編譯時就能確定值cout << "result: " << result << endl;return 0;
}

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

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

相關文章

使用nginx反向代理kkfile

這篇說一下我解決的思路和方式哈&#xff0c;不一定適用于大家&#xff0c;可以做個參考比如我們的系統服務是http://10.63.25.35:80&#xff0c;而我們的文件服務是在10.63.25.37:8012上&#xff0c;正常不使用代理的話&#xff0c;我們前端調用后端接口&#xff0c;后端調用k…

【低成本擴容】動態擴容實戰指南

面對擴容操作時&#xff0c;下面這種操作是否也會迷惑你&#xff1f;下面來為大家解惑~size_t newcapacity 2*_capacity > (_size len)?2*_capacity:(_sizelen); //len為即將插入的字符串有效字符個數//_size為當前字符串有效字符個數//_capacity為當前容量大小//newcapa…

Product Hunt 每日熱榜 | 2025-08-14

1. Autumn 標語&#xff1a;為AI初創公司簡化的Stripe服務 介紹&#xff1a;Autumn幫助AI初創公司通過只需三個API調用來定價、計量和控制使用情況。基于Stripe搭建&#xff0c;它可以在一個地方管理訂閱、使用情況和訪問權限。無需復雜的webhooks或后端邏輯&#xff0c;非常…

Scrapy + Django爬蟲可視化項目實戰(二) 詳細版

系列文章 Scrapy + Django爬蟲可視化項目實戰(一)_django scrapy-CSDN博客 實現技術 Scrapy Django Echarts 引言 可視化部分需要讀者具備一定的Django基礎!!! 上一個文章我們已經實現了爬取景點的數據,那么接下來就是根據爬取到的數據進行可視化 一、環境搭建 (一) 創…

選擇式與生成式超啟發算法總結

這里寫目錄標題Selection HHGeneration HHGPHH示例存在大量針對特定問題設計的啟發式算法&#xff0c;近年來學術界提出了一個關鍵問題&#xff1a;如何選擇最合適的啟發式方法。這一問題推動了超啟發式&#xff08;hyper-heuristic&#xff09;方法的研究發展。超啟發式是一種…

NetBIOS 設置

在 Windows 系統中,WINS (Windows Internet Name Service) 和 NetBIOS 緊密相關,主要用于 NetBIOS 名稱解析(將計算機名轉換為 IP 地址)。WINS 是一個動態數據庫,類似于 DNS,但專門用于 NetBIOS 名稱解析,適用于早期 Windows 網絡(如 Windows NT/2000/XP)。 1. 查看 N…

vue2 + SimpleMindMap 制作思維導圖

vue2 SimpleMindMap 制作思維導圖 該代碼包含SimpleMindMap已知的所有功能&#xff0c;有需要的小伙伴可自行copy&#xff0c;框架使用el-ementui。其中有些圖標是阿里巴巴矢量圖的圖片&#xff0c;可自行進行替換。保姆級教程 以下是vue文件&#xff1a; <template><…

Discord x Pulsar: 使用 Pulsar、Flink 和 Iceberg 搭建流式機器學習平臺

本文整理自 Discord 機器學習工程師 David Christle 在 Pulsar Summit NA 上的演講內容&#xff0c;一起來看 Discord 是如何基于 Pulsar 實現兼顧安全和個性化功能的實時流式機器學習平臺的&#xff5e;1. 背景Discord 是一個實時?視頻通信平臺&#xff0c;?持?本/語?/視頻…

【數據結構入門】二叉樹(2)

目錄 1.二叉樹遍歷順序 1.1 前序&#xff08;先根&#xff09;遍歷 1.2 中序&#xff08;中根&#xff09;遍歷 1.3 后序&#xff08;后根&#xff09;遍歷 1.4 層序遍歷 1.5 深度優先遍歷&廣度優先遍歷 2.二叉樹的遍歷 2.1 前根遍歷&#xff08;遞歸&#xff09; …

【電機參數】電壓、電流、轉速標幺化推算過程

【電機參數】電壓、電流、轉速標幺化推算過程 文章目錄[TOC](文章目錄)前言一、標幺化目的——優化計算二、Q15與標幺化的關系三、標幺值計算1.電壓標幺值2.電流標幺值3.轉速標幺值四、參考資料總結前言 一、標幺化目的——優化計算 不同物理量的量綱和數值范圍差異巨大&#…

v-scale-scree: 根據屏幕尺寸縮放內容

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

linux設備驅動之字符設備驅動

一、cdev結構體?成員/功能??說明??相關操作函數/宏??kobj?內嵌的kobject對象&#xff0c;用于Linux設備模型管理&#xff0c;實現引用計數和sysfs接口kobject_init()?owner?指向擁有該結構體的模塊指針&#xff08;通常為THIS_MODULE&#xff09;&#xff0c;防止模塊…

★CentOS:MySQL數據備份

一、cp 命令備份特點&#xff1a;優點&#xff1a;備份恢復數據快&#xff1a;直接復制文件&#xff0c;無需進行數據轉換和復雜的處理&#xff0c;因此備份恢復速度非常快缺點&#xff1a;需要停止數據庫服務&#xff0c;靈活性差&#xff0c;占用空間大&#xff0c;可移植性差…

Python代碼規范與靜態檢查(ruff/black/mypy + pyproject.toml + Makefile)自動化工具鏈介紹

文章目錄**1. 核心工具的作用****(1) black&#xff1a;代碼格式化工具****(2) ruff&#xff1a;代碼質量檢查工具****(3) mypy&#xff1a;靜態類型檢查工具****2. pyproject.toml&#xff1a;統一配置中心****示例配置**&#xff08;pyproject.toml&#xff09;&#xff1a;*…

軟件需求管理過程詳解

需求管理過程需求管理是軟件工程和系統開發中的核心過程&#xff0c;它確保項目始終圍繞正確、穩定且可追溯的需求進行。在復雜系統開發中&#xff0c;需求往往動態變化&#xff0c;需求管理通過系統化的方法控制變更、維護版本、建立追溯關系&#xff0c;從而降低項目風險、保…

MySQL性能優化實戰指南:從入門到精通的完整優化體系

MySQL性能優化實戰指南&#xff1a;從入門到精通的完整優化體系&#x1f680; 前言&#xff1a;在當今數據驅動的時代&#xff0c;MySQL作為世界上最流行的開源關系型數據庫&#xff0c;其性能優化能力直接決定了應用系統的響應速度和用戶體驗。本文將從多個維度深入探討MySQL優…

KingbaseES主備讀寫分離集群安裝教程

首先我們先要找數據庫集群安裝軟件和腳本。這里我事先安裝一臺單機。 [rootlocalhost zip]# mkdir -p /home/kingbase/software [rootlocalhost zip]# scp -r * /home/kingbase/software/ #安裝軟件和腳本在單機版本的/opt/Kingbase/ES/V9/ClientTools/guitools/DeployTools/z…

electron程序適配loongArch64

一、原始項目 1.原始程序適配arm&#xff0c;x86國產linux設備;新增需求適配loongArch64麒麟v10sp1。 2.原始devDependencies "devDependencies": {"electron": "^17.2.0","electron-builder": "^23.0.3",}二、可能遇到的問…

窗口系統(windowing system)的架構思考

我想做一個通用窗口系統&#xff0c;窗口、控件等&#xff0c;一切都抽象成樹形結構的層疊矩形塊&#xff0c;可支持半透明、模糊等混合選項&#xff0c;那么每個窗口是不是需要一塊存儲區&#xff1f;我之前的代碼為了計算模糊&#xff0c;還不止一塊&#xff0c;要三塊。那么…

極簡工具箱:安卓工具箱合集

軟件介紹 極簡工具箱是一個安卓工具箱合集軟件&#xff1b;軟件支持安卓。 它支持將近 400 個實用功能&#xff0c;支持將近 40 款單機游戲&#xff0c;提供 140 多個實用網站導航&#xff0c;包括電子書導航、學習導航、設計導航、產品經理導航、大數據導航、文檔格式轉換、…