# 【知識精講】變量與數據類型
## Part1
在前面的課程中,我們已經引入了“變量”這一概念,接下來我們將對變量和 C++ 語言的基本數據類型做進一步的介紹。
我們知道,程序的本質功能是**對數據進行處理**,而數據本身又可以分類——比如數學上有整數、小數等概念,日常生活中需要用字符串來表示人的姓名和地址,有些問題的回答只能是“是/否”或者“真/假”等。對于不同類型的數據,我們可以使用不同的處理方法——而在處理之前,我們首先需要為不同的數據類型,準備不同的“盒子”,也就是定義不同類型的變量。
C++ 中的數據類型分為基本數據類型和自定義類型——前者是 C++ 編譯系統內置的,而后者則是我們自己可以定義的。這一章我們將首先介紹基本數據類型。
## Part3
那么你可能又要好奇了,C++ 語言中有哪些可以修飾變量的類型呢?相對應的用于格式化輸出的占位符又有哪些呢?
在 C++ 語言中,我們常用的基礎變量數據類型有:
| 數據類型 | 關鍵字 | 說明 |
| --- | --- | --- |
| 整數型 | `int` | 反映機器中整數的自然長度 |
| 字符型 | `char` | 占 111 字節,可存一個字符 |
| 單精度浮點數型 | `float` | |
| 雙精度浮點數型 | `double` | |
| 布爾型 | `bool` | 取值只能是`true`或者`false`,注意首字母必須小寫 |
## Part4
除了基礎變量數據類型,我們還可以在基本數據類型的前面加一些限定符,比方說`short`和`long`可以加在`int`、`float`、`double`前用于修飾對應的數據類型。比方說,被`short`修飾的整數型變量的存儲位數會更小,相應的可存整數范圍也就比較小,而如果被`long`修飾則會用更多的存儲位數,能存的整數范圍也不小于`int`。
我們還可以用`unsigned`來修飾`int`,說明數據類型是無符號的整數。當你寫下`unsigned int`的時候,你其實在告訴計算機“這個整數不需要留出一位來存儲符號,所有的位數都可以拿來存數字”。相應的,這種類型的變量就可以用于表示更大的正整數。
## Part5
你可能注意到了,老師一直在強調不同數據的類型。因為,不同類型的變量只能和符合它類型的值相對應。如果我們試圖將一個 100000000001000000000010000000000 存到一個`int`類型的變量`d`中的時候,由于存儲的位數不夠,這個變量`d`就無法正確地存儲這個數或將它用于計算了(如果數據比較大,其實可以學習用一下`long long int`的數據類型,具體做法可以自己在互聯網上找一找喔)。
- 教材介紹
- 《編程初學入門常識》
- 什么是程序語言
- 【知識精講】編程與編程語言
- 【選擇測試】編程語言分類
- 【知識精講】高級語言分類
- 【選擇測試】編譯與解釋
- 【選擇測試】程序員笑話-Java
- 熟悉鍵盤上用于編程的鍵位
- 【知識精講】認識你的鍵盤
- 【知識精講】中文和英文字符
- 【匹配測試】識別中英文符號
- 【選擇測試】中英文符號的影響
- 【伴隨編程】不要使用中文引號
- 【伴隨編程】不要使用中文分號
- 【伴隨編程】正確地輸入符號
- 【選擇測試】找出程序中的錯誤
- 初始工程師思維
- 【知識精講】二進制思想
- 【選擇測試】程序員笑話-湊整
- 【知識精講】閉合的邏輯
- 【選擇測試】程序員笑話-條件
- 程序員職業與生活
- 【知識精講】程序員的發展方向
- 【知識精講】程序員的裝備
- 【知識精講】程序員的健康
- 【選擇測試】做一名健康的程序員
- 《C++程序設計》
- 前言
- 【知識精講】編程與計算機科學
- 【知識精講】編程與軟件工程
- 【知識精講】如何學習編程
- 你好C++
- 【知識精講】你好,C++
- 【知識精講】C++程序是如何開發的
- 【知識精講】成為一名Power User
- 【伴隨編程】讓我們一起說你好
- 【知識精講】你的第一個C++語言程序
- 【伴隨命令】編譯、運行你的程序
- 【伴隨編程】將變量流式輸出
- 【選擇測試】變量的作用域
- 【知識精講】變量與數據類型
- 【匹配測試】C++語言的入門概念
- 【知識精講】在程序中學會換行
- 【選擇測試】正確地換行
- 簡單數學運算
- 【知識精講】重新認識基本運算
- 【選擇測試】運算符的理解
- 【伴隨編程】做一下簡單的運算
- 【伴隨編程】a 的 n 次方
- 【知識精講】數學函數
- 【伴隨編程】讓C++語言變成計算器
- 【伴隨編程】計算球的體積
- 【匹配測試】數學世界知多少
- 【知識精講】在程序中添加注釋
- 【選擇測試】正確地寫注釋
- 從伴隨輸入到變量地址
- 【伴隨編程】 一個數字復讀機器
- 【選擇測試】理解標準輸入輸出
- 【伴隨編程】一個加法計算器
- 【程序設計】A+B+C問題
- 【伴隨編程】簡單的I/O格式控制
- 【知識精講】地址與取地址符
- 【伴隨編程】看看我們的地址
- 習題一:面積與周長
- 【程序設計】矩形面積與周長
- 【程序設計】三角形面積與周長
- 【程序設計】圓形面積與周長
- 程序中的是與非
- 【知識精講】是非的表示與關系運算
- 【伴隨編程】驗一驗關系運算式
- 【選擇測試】關系運算式求值
- 【知識精講】如果的意義
- 【伴隨編程】分段函數求值
- 【知識精講】如果之后的如果
- 【伴隨編程】五則運算器
- 【選擇測試】分支的嵌套
- 【伴隨編程】問號表達式
- 【知識精講】是非之間的邏輯組合
- 【伴隨編程】判斷閏年
- 【程序設計】日期合法性
- 【知識精講】多路順序結構
- 【知識精講】在程序中學會縮進
- 【選擇測試】正確的縮進
- C++程序中的苦力
- 【知識精講】使用循環結構
- 【選擇測試】對比兩種循環
- 【伴隨編程】使用while循環
- 【填空測試】理解循環結構
- 【知識精講】自減和自增運算符
- 【伴隨編程】使用自增運算符
- 【知識精講】for循環
- 【選擇測試】for循環的使用
- 【程序設計】一大波好玩兒的程序
- 《代碼能力快速提升》
- 《基礎數據結構》
- 《搜索入門》
- 《動態規劃基礎》
- 《數論和基礎數學》
- 《圖和數基礎》