两个重点:数据类型&变量
数据类型 Data Type
数据类型就是数据的类型,每种数据有自己的值和操作规则。
C++有三大类语句类型:
简单数据类型
结构化据类型
点
这一期只详细讲简单数据类型,另外两个类型的会分别单独做一期。
简单数据类型 Simple Data Type
简单数据类型是C++中最基本的数据类型。简单数据类型又可分为三类:
整体
浮点
枚举
*枚举这一期也不讲,简单地说一下就是自定义数据类型。
整型 Integral
整型或者没有小数点和数字,通常分为以下9种:
char
unsigned char
short
unsigned short
int
unsigned int
long
unsigned long
bool
char、short、int与long之间的差别在于占用的空间大小。通常来说,从小到大的顺序是char
有没有unsiged的区别在于值的范围。
因为不同的编译器有不同的范围和占用大小,所以我使用 visual studio 简单的写了几行来看看我用的这个编译器对这几种类型的限定。
下图是output:
long long 是新规定的一种数据类型,用于处理更大的整数。
如果是使用 visual studio 的话,可以在 Solution Explorer 里的 External Dependencies 里找到 limits.h
点开这个文件就可以知道编译器对这几种数据类型的定义。
int、bool和char是最常用的三种简单数据类型,以下将更加详细的讲解。
int
C++中 int 就是 integer,也就是整数。
需要注意的是:
正数前面可以省略 '+'
一个整数不包含',',例如19234(一万九千二百三十四)不需要写成19,234,否则可能会被识别成19和234两个整数.
bool
bool就是指Boolean,只有两个值 true 和 false,这两个值又可以被叫做逻辑值 (logical value) 或 布尔值 (Boolean value)。
true 和 false 不需要双引号、单引号、书名号等符号框住。
char
整型数据类型中最小的数据类型,代表单个的数字、字母及特殊符号,并在单引号' '之间,如:
'a'、'1'、'@'。
排序次序 (collating sequence) 就是每一个代表字符的数值的顺序,通常 char 是按照美国信息交换标准代码 (ASCII) 排序。
先看行数,再看列数,最大只有127。举个例子:
由上图可知 'E' 是第6行第9列,就是69,所以当 theChar = 69 时,就是告诉我需要的字符的顺序是第69位,就是大写 E。
再来个例子:
这里118就是小写 v 在 ASCII 里的顺序是第118位。theInt = 'v' 的意思就是 theInt 的值就是小v在 ASCII 里的顺序位置。
这两个例子涉及到之后某期的内容casting,就是类型转换,在那期会更详细讲。
一定会有人注意到 '\n' 这个明明是包含了两个字符,为什么没有显示error,原因是 \n 在 C++ 中是换行的意思。
根据 output 的10得知 '\n' 在ascii 中是第10位,就是 lf,line feed。下图是前32个字符的意思:
抹去的是16进制,避免更多的混乱。
在进入下一部分之前,解决一个问题:我就想让输出结果是 \n 怎么办?
加个 \ 在前面,\\ 就是 \。
为什么 "\\n" 用的是双引号而 '\\' 是单引号,因为 \\n 不是 char 类型,是string,是字串。
同理,当想换两行甚至多行的时候,是 "\n\n",而不是 '\n\n'。
浮点数据类型 Floating-Point Data Type
取名浮点因为有数字有小数点。
啊呸!
取名浮点是因为C++使用科学计数法中的浮点计数法来表现小数,用E作为指数。E就是自然常数。
通常有三种数据类型用来处理小数:float、double 和 long double,在很多新的编译器中 double 和 long double 是一回事,所以就只介绍 float 和 double。
float 和 double 的差别有:值的范围、占用大小和精确度 (presicion),也就是有效数位。
有时候 float 的值被称为单精度 (single precision),double 的值被称为双精度 (double precision)。
同样可以在 Solution Explorer 里的 External Dependencies 里的 float.h 里看到更详细的信息。double 和 float 的值的范围是系统相关的,所以大家的可能不一样。
在C++中,浮点数会默认为 double 类型,当使用 float 时,有些编译器会给出提醒,建议使用 double。
最后的最后,数据类型的重要性是选择合适的数据类型才能合理的运用和分配空间。