C++語言程序設計——02 變量與數據類型

目錄

  • 一、變量與數據類型
    • (一)變量的數據類型
    • (二)變量命名規則
    • (三)定義變量
    • (四)變量賦值
    • (五)查看數據類型
    • (六)數據類型的字節長度
    • (七)sizeof運算符
  • 二、進制表示與轉換
    • (一)不同進制表示
    • (二)進制轉換方法
  • 三、ASCII碼

一、變量與數據類型

(一)變量的數據類型

類型特點
int整數類型(整型)
long long長整型
short短整型
float單精度浮點型
double雙精度浮點型
char單字符/小整數類型
string字符串類型
bool布爾值類型
void無類型

一般來說,可以直接使用字符串類型string不用加頭文件< string >,因為有的編譯器< iostream >中通常包含,不過有的舊版本編譯器不一定包含,可能報錯無法編譯成功:

#include <string>

總結一下,上面的數據類型中,int就是整數,float和double就是小數,而string是字符串(中文、英文、符號等),同時要注意float和double的區別。

類型特點精度占用空間
float單精度浮點型6~7位小數4字節(byte)
double雙精度浮點型15-16位小數8字節(byte)

(二)變量命名規則

變量可以比作一個盒子,可以裝數據,同時它也有一個名字,即變量名。但是,變量的命名有一個嚴格的規則,如下:

① 變量名稱不能是c++中的關鍵字、標準庫函數,例如,if、else、true、false等。
② 變量名稱可以由英文字母、數字及下劃線(_)組成,但不能以數字開頭。
③ 嚴格遵循大小寫。

(三)定義變量

1、定義一個變量:
根據剛剛學到的變量數據類型,我們知道,在定義變量時候要首先定義變量的類型,然后再寫上變量的名字,定義變量的具體方法如下:

數據類型 變量名字;               //不要忘記英文冒號了!!

2、定義多個變量:
也可以一次定義多個變量,通過英文逗號隔開就好,要注意這樣定義的變量是屬于同一個數據類型的,如下格式:

數據類型 變量名字1,變量名字2,……;               //不要忘記英文冒號了!!

3、定義變量的區間:
另外,這里要注意一下,定義變量應該在哪里定義?因為在主函數int main()里面定義和其他地方定義的意思是不一樣的。

【一句話總結,例如,自己家的電腦和外面網吧的電腦】
在主函數外面定義的變量就是外面網吧的電腦,其他人都可以使用,是公共的,其他人(所有函數)都可以使用。
在這里插入圖片描述
在主函數里面定義的變量就是自己家的電腦,是我的電腦,只有我(主函數里面的代碼)才能使用,其他人用該電腦無法打游戲。
在這里插入圖片描述

(四)變量賦值

一定要注意,先定義函數,然后再賦值!不過也可以將定義和賦值一起寫,簡化一下,賦值是通過在變量名字后面寫一個等于號,然后后面寫內容。賦值操作并不會改變變量的數據類型。

#include<iostream>
using namespace std;int main()
{int a;a = 1;int A = 2;cout << a << endl;cout << A;return 0;
}

運行結果如下:
在這里插入圖片描述
可以一次性定義多個同類型的變量,也可以一次性cout輸出幾個變量,如下:

#include<iostream>
using namespace std;int main()
{int a=1,b=2,c=3,d=4;cout << a << b << c << d;return 0;
}

運行結果如下:
在這里插入圖片描述
可以實現一個簡單的兩個整數相加計算器功能,如下:

#include<iostream>
using namespace std;int main()
{int a=1,b=2,c;cout << "a+b的結果是:\n"<< a + b ;return 0;
}

運行結果如下:
在這里插入圖片描述
也可以定義變量來輸出字符串,不過記得要加頭文件< cstring >,如下:

#include<iostream>
#include<cstring>
using namespace std;int main()
{int a = 1;float b = 2.566666;string c = "今天是2025/3/30 !";cout << "a和b的值是:" << a << "\n" << b << endl;cout << c;return 0;
}

運行結果如下:
在這里插入圖片描述

(五)查看數據類型

如果我們需要查看我們創建變量的數據類型,就需要先導入頭文件< typeinfo >,然后通過typeid().name()來查看,typeid()括號里面寫變量的名稱。例如,下面代碼,定義了七個數據類型,通過該方法查看并cout輸出:

#include<iostream>
#include<cstring>
#include <typeinfo>
using namespace std;int main()
{int a = 1;long long b = 6666666666;float c = 0.2;double d = 0.00000000003;char e = 'A';string f = "今天是2025年3月30日!";bool g = true;cout << "a的類型是:" << typeid(a).name() << "\n";cout << "b的類型是:" << typeid(b).name() << "\n";cout << "c的類型是:" << typeid(c).name() << "\n";cout << "d的類型是:" << typeid(d).name() << "\n";cout << "e的類型是:" << typeid(e).name() << "\n";cout << "f的類型是:" << typeid(f).name() << "\n";cout << "g的類型是:" << typeid(g).name() << "\n";return 0;
}

運行結果如下:
在這里插入圖片描述
所以這里,我們可以總結一下通過typeid().name()所得到的數據類型:

類型特點名稱
int整數類型(整型)i
bool布爾值類型b
char字符串類型c
long long長整型x
float單精度浮點型f
double雙精度浮點型d
string字符串類型Ss

(六)數據類型的字節長度

數據類型是以字節(Byte)為單位來存儲的。

名稱表示
bit
字節Byte
固定字長8位、16位、32位、64位等
機器字長32位、64位等

常用的基本數據類型的長度如下表:

類型特點長度(Byte)
bool布爾值類型1B
char單字符/小整數類型1B
short短整數類型2B
int整數類型(整型)4B
float單精度浮點型4B
long long長整型8B
double雙精度浮點型8B

(七)sizeof運算符

sizeof運算符用于計算某種類型在計算機內存中所占的字節數(字節長度),例如:

#include<iostream>
using namespace std;
int main()
{bool a;short b;int c;double d;cin >> a >> b >> c >> d;    cout << "a的值為:" << sizeof(a) << endl;cout << "b的值為:" << sizeof(b) << endl;cout << "c的值為:" << sizeof(c) << endl;cout << "d的值為:" << sizeof(d) << endl;return 0;
}

運行結果如下:
在這里插入圖片描述

二、進制表示與轉換

一般有以下常見的進制表示,例如,二進制、八進制、十進制和十六進制。要注意是從0開始,可以簡單描述為逢X進1(X為2、8、10、16),如下表:

類型寫法
二進制0、1
八進制0、1、2、3、4、5、6、7
十進制0、1、2、3、4、5、6、7、8、9
十六進制0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F

尤其要注意十六進制中,有一些是用大寫英文字母代替的,如下:

十六進制表示對應數字
A10
B11
C12
D13
E14
F15

(一)不同進制表示

我們數學默認是十進制(逢十進一)表示,而計算機是采用二進制的,如果我們想在c++中表示其他進制,需要在數字前添加別的東西,才能表示該進制的寫法。例如,以15為例子,如下:

類型寫法備注
十進制15無前綴
八進制017加前綴【0
二進制0b1111加前綴【0b
十六進制0xF加前綴【0x

(二)進制轉換方法

1、輸出為十進制
輸出為十進制是通過控制符dec(decimalism,十進制)來實現的,例如以下代碼:

#include<iostream>
using namespace std;int main()
{cout << "017八進制轉十進制輸出:" << dec << 017 << endl;cout << "0b1111二進制轉十進制輸出:" << dec << 0b1111 << endl;cout << "0xF十六進制轉十進制輸出:" << dec << 0xF << endl;return 0;
}

運行結果如下:
在這里插入圖片描述
2、輸出為八進制
輸出為八進制是通過控制符oct(Octal Q,八進制)來實現的,例如以下代碼:

#include<iostream>
using namespace std;int main()
{cout << "15十進制轉八進制輸出:" << oct << 15 << endl;cout << "0b1111二進制轉八進制輸出:" << oct << 0b1111 << endl;cout << "0xF十六進制轉八進制輸出:" << oct << 0xF << endl;return 0;
}

運行結果如下:
在這里插入圖片描述
3、輸出為十六進制
輸出為八進制是通過控制符hex(hexadecimal,十六進制)來實現的,例如以下代碼:

#include<iostream>
using namespace std;int main()
{cout << "15十進制轉十六進制輸出:" << hex << 15 << endl;cout << "0b1111二進制轉十六進制輸出:" << hex << 0b1111 << endl;cout << "017八進制轉十六進制輸出:" << hex << 017 << endl;return 0;
}

運行結果如下:
在這里插入圖片描述
4、輸出為二進制
輸入二進制需要先導入一個 < bitset > 頭文件,然后通過bitset來實現,如果是要轉換為八位,即bitset<位數>(數字)。下面是示例代碼:

#include<iostream>
#include<bitset> 
using namespace std;int main()
{cout << "15十進制轉二進制輸出:" << bitset<8>(15) << endl;cout << "017八進制轉二進制輸出:" << bitset<8>(017) << endl;cout << "0xF十六進制轉二進制輸出:" << bitset<8>(0xF) << endl;return 0;
}

運行結果如下:
在這里插入圖片描述

三、ASCII碼

對于計算機中非數值信息(字母、符號、控制字符等),它們也是通過二進制0和1進行編碼來顯示的,通常采用的是ASCII編碼。簡單的來說,ASCII碼是計算機中的「字符字典」,相當于給每個常用的字母、符號等都編了號,從而讓計算機能理解。因為,計算機只認識0和1(二進制),所以ASCII碼可以幫我們把字母等變成二進制數字。

ASCII碼一共定義了128個字符(后來擴展成256個),主要包含以下內容:
①英文字母(大小寫)
②數字0~9
③標點符號(!@#¥%*等)
④控制字符(回車、換行等)
在這里插入圖片描述
在c++中,我們使用char()int()進行顯式類型轉換,進行ASCII字符與對應編碼值之間的轉換,如下:

類型作用
int(數字)數字 → 字符
char(字符)字符 → 數字

例如,我們知道大寫英文字母 A ,而它的ASCII碼為65,就可以通過char()將數字轉換為字符,同理,我們將字符 A 轉換為對應的ASCII碼,如下代碼:

#include<iostream>
using namespace std;int main()
{int a = 100;char b = 'A';cout << "變量a對應的字符:" << char(a) << endl;cout << "變量b的ASCII碼是:" << int(b);return 0;
}

運行結果如下:
在這里插入圖片描述

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

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

相關文章

咋用fliki的AI生成各類視頻?AI生成視頻教程

最近想制作視頻&#xff0c;多方考查了決定用fliki&#xff0c;于是訂閱了一年試試&#xff0c;這個AI生成的視頻效果來看真是不錯&#xff0c;感興趣的自己官網注冊個賬號體驗一下就知道了。 fliki官網 Fliki生成視頻教程 創建賬戶并登錄 首先&#xff0c;訪問fliki官網并注…

文章記單詞 | 第32篇(六級)

一&#xff0c;單詞釋義 inferior [?n?f??ri?(r)] adj. 較差的&#xff1b;次的&#xff1b;下級的&#xff1b;n. 下屬&#xff1b;次品joy [d???] n. 歡樂&#xff1b;喜悅&#xff1b;樂趣&#xff1b;樂事&#xff1b;v. 因… 而高興resemble [r??zembl] vt. 類…

windows上安裝Jenkins

1. 下載windows版 jenkins安裝包 2. 配置本地安全策略 在 Windows 11/10 上打開本地安全策略。 Secpol.msc 或本地安全策略編輯器是一個 Windows 管理工具&#xff0c;允許您在本地計算機上配置和管理與安全相關的策略。 安全設置-》本地策略-》用戶權限分配-》作為服務登錄…

dfs二叉樹中的深搜(回溯、剪枝)--力扣129、814、230、257

目錄 1.1題目鏈接&#xff1a;129.求根節點到葉結點數字之和 1.2題目描述&#xff1a;給你一個二叉樹的根節點 root &#xff0c;樹中每個節點都存放有一個 0 到 9 之間的數字。 1.3解法(dfs-前序遍歷)&#xff1a; 2.1題目鏈接&#xff1a;814.二叉樹剪枝 2.2題目描述&…

【樹形dp題解】dfs的巧妙應用

【樹形dp題解】dfs的巧妙應用 [P2986 USACO10MAR] Great Cow Gathering G - 洛谷 題目大意&#xff1a; Bessie 正在計劃一年一度的奶牛大集會&#xff0c;來自全國各地的奶牛將來參加這一次集會。當然&#xff0c;她會選擇最方便的地點來舉辦這次集會。 每個奶牛居住在 N N …

【c++深入系列】:new和delete運算符詳解

&#x1f525; 本文專欄&#xff1a;c &#x1f338;作者主頁&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客勵志語錄&#xff1a; “生活不會向你許諾什么&#xff0c;尤其不會向你許諾成功。它只會給你掙扎、痛苦和煎熬的過程。但只要你堅持下去&#xff0c;終有一天&…

Spring Boot 實現防盜鏈

在 Spring Boot 項目中實現防盜鏈可以通過多種方式&#xff0c;下面為你介紹兩種常見的實現方法&#xff0c;分別是基于請求頭 Referer 和基于令牌&#xff08;Token&#xff09;的防盜鏈。 基于請求頭 Referer 的防盜鏈 這種方法通過檢查請求頭中的 Referer 字段&#xff0c…

悄悄話識別、 打電話識別、攀高識別三種識別算法

在攝像頭正對場景下,悄悄話識別(唇語識別)、打電話識別和攀高識別是三種典型的行為檢測技術。以下從技術原理、算法模型、應用場景及挑戰等方面進行詳細分析: 一、悄悄話識別(唇語識別) 技術原理 唇語識別通過分析嘴唇的幾何特征(形狀、開合程度、運動軌跡)和動態變化…

centos部署的openstack發布windows虛擬機

?CentOS上部署的OpenStack可以發布Windows虛擬機?。在CentOS上部署OpenStack后&#xff0c;可以通過OpenStack平臺創建和管理Windows虛擬機。以下是具體的步驟和注意事項&#xff1a; ?安裝和配置OpenStack?&#xff1a; 首先&#xff0c;確保系統滿足OpenStack的最低硬件…

【電子通識】案例:電纜的安裝方式也會影響設備的可靠性?

背景 在日常生活中&#xff0c;我們常常會忽略一些看似微不足道的細節&#xff0c;但這些細節有時卻能決定設備的壽命和安全性。比如&#xff0c;你知道嗎&#xff1f;一根電纜的布置方式&#xff0c;可能會決定你的設備是否會因為冷凝水而損壞。 今天&#xff0c;我們就來聊聊…

【Web APIs】JavaScript 操作多個元素 ④ ( 表格全選復選框案例 )

文章目錄 一、核心要點解析 - 表格全選復選框案例1、案例需求2、復選框設置3、獲取 全選復選框 和 普通復選框4、設置 全選復選框 邏輯5、設置 普通復選框 邏輯 二、完整代碼示例1、代碼示例2、執行結果 一、核心要點解析 - 表格全選復選框案例 1、案例需求 在表格中 , 設置 多…

OpenAI發布GPT-4.1系列模型——開發者可免費使用

OpenAI剛剛推出GPT-4.1模型家族&#xff0c;包含GPT-4.1、GPT-4.1 Mini和GPT-4.1 Nano三款模型。重點是——現在全部免費開放&#xff01; 雖然技術升級值得關注&#xff0c;但真正具有變革意義的是開發者能通過Cursor、Windsurf和GitHub Copilot等平臺立即免費調用這些模型。…

《重構全球貿易體系用戶指南》解讀

文章目錄 背景核心矛盾與理論框架美元的“特里芬難題”核心矛盾目標理論框架 政策工具箱的協同運作機制關稅體系的精準打擊匯率政策的混合干預安全工具的復合運用 實施路徑與全球秩序重構階段性目標 風險傳導與反制效應內部失衡加劇外部反制升級系統性風險 范式突破與理論再思考…

磁盤清理-C盤

0.采用的工具——WizTree&#xff08;一定要以管理員身份運行&#xff09; 沒有以管理員身份運行時&#xff1a; 以管理員身份運行&#xff1a;&#xff08;查出很多之前沒有查出的文件&#xff09; 1.該死的優酷&#xff01;緩存占我11個G的內存 2.C 盤 Dell 文件夾下的 SARe…

錨定“體驗驅動”,銳捷EDN讓園區網絡“以人為本”

作者 | 曾響鈴 文 | 響鈴說 傳統的網絡升級路徑&#xff0c;一如巴別塔的建造思路一般——工程師們按技術藍圖逐層堆砌&#xff0c;卻常與地面用戶的實際需求漸行漸遠&#xff0c;從而帶來了諸多體驗痛點&#xff0c;如手工配置效率低下、關鍵業務用網無法保障、網絡架構趨于…

pid_t

用最簡單的方式解釋&#xff1a; pid_t 就像是一個"專門用來裝進程號碼的盒子"。 實際本質&#xff1a; 這個盒子里面裝的是整數&#xff08;就像 int&#xff09;但給它貼了專用標簽&#xff0c;標明"只能裝進程ID" 為什么不用普通int&#xff1a; 就像…

如何處理Python爬取視頻時的反爬機制?

文章目錄 前言1. IP 封禁2. 驗證碼3. 用戶代理&#xff08;User-Agent&#xff09;檢測4. 動態內容加載5. 加密和簽名驗證 前言 在使用 Python 爬取視頻時&#xff0c;網站可能會設置多種反爬機制來阻止爬蟲&#xff0c;下面為你介紹一些常見反爬機制及對應的處理方法&#xf…

如何利用GM DC Monitor快速監控一臺網絡類設備

GM DC Monitor v2.0在網絡類設備監控的效率非常高&#xff01; 如果您需要管理運維大量的網絡類設備&#xff0c;GM DC Monitor是個不錯的選擇。 如果您具備一定的采集腳本編寫能力&#xff0c;可以在平臺的定制屬于自己的監控模板&#xff01; 1&#xff09;首先建立數據中…

特殊文件以及日志——特殊文件

一、特殊文件 必要性&#xff1a;可以用于存儲多個用戶的&#xff1a;用戶名、密碼。這些有關系的數據都可以用特殊文件來存儲&#xff0c;然后作為信息進行傳輸。 1. 屬性文件.properties&#xff08;鍵值對&#xff09; &#xff08;1&#xff09;特點&#xff1a; 都只能…

基于AD9767高速DAC的DDS信號發生器

DDS信號發生器原理 DDS控制信號發生原理圖 DDS主要由相位累加器、相位調制器、波形數據表以及D/A轉換器構成。其中相位累加器由N位加法器與N位寄存器構成。每個時鐘周期的時鐘上升沿,加法器就將頻率控制字與累加寄存器輸出的相位數據相加,相加的結果又反饋至累加寄存…