# 【知识精讲】变量与数据类型
## 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循环的使用
- 【程序设计】一大波好玩儿的程序
- 《代码能力快速提升》
- 《基础数据结构》
- 《搜索入门》
- 《动态规划基础》
- 《数论和基础数学》
- 《图和数基础》