C++| C++ 入门教程(二)基本数据类型

2 数据类型 2.1 整型
C++ 中能够表示整型的类型有大概四种,区别在于所占空间的不同:

数据类型 占用空间(单位:字节)
short 2
int 4
long Windows(4), Linux(4), 64位系统(8)
long long 8
虽然我的系统是64位的,但是实验了一下,可能是因为 VS 的原因,导致我写出来的 long 类型只有 4 个字节。这个其实不是特别的稳定,所以之后还是尽量少用 long 类型。
2.2 sizeof 关键字
作用:可以统计一个数据类型占用的空间大小。
语法:sizeof(数据类型/变量) 单位:字节
根据之前的实验,sizeof 关键字不仅可以统计基本数据类型所占的空间大小,结构体、类都是可以通过 sizeof 来进行判定的。至于对于类中的静态对象、方法等占用空间是怎么计算的。可以先留一下,之后再看。
2.3 浮点型
浮点型变量分为两种:float, double
数据类型 占用空间(单位:字节) 有效数字范围
float 4 7位
double 8 15-16位
默认情况下,编译器会把一个小数当成一个双精度浮点数 double 类型,我们在创建一个单精度变量的时候,可以通过加 'f' 后缀来直接得到一个单精度的常数。
默认情况下,输出一个小数,会显示六位有效数字。
表示小数的两种方式:
  1. 小数点计数法:即使用小数点来表示,类似于3.14159之类的。
  2. 科学计数法:类似于3e2,通过 e 来分割。e 的前面是有效数字,后面是
2.4 字符型
作用:显示单个的字符。
我的理解是,虽然 char 类型中存储的数据本质是 ASCII 码,但是在进行输出的时候,一旦计算机识别出来这个数据是 char 类型,则会把他当成字符本身进行输出。所以 char 本身是可以像一般的数据一样加减的。
语法:char ch = 'a';
有两点注意:一是字符需要用单引号 '' 扩起来,二则是单引号中只能放进一个字符。
通过强制转换,可以输入 ASCII 码,或者输出 ASCII 码。
输出 ASCII 码 可以将需要输出 ASCII 码的字符转换为整型,然后输出。
int main() { char ch = 'A'; cout << (int)ch << endl; return 0; }

输入 ASCII 码 ASCII 码是可以直接输出的,像这样:
int main(){ char ch = 97; cout << ch; return 0; }

这样就会输出一个 a。
【C++| C++ 入门教程(二)基本数据类型】如果我们希望通过键盘输入一个 ASCII 码,然后转换为字符的话,就不行了。因为键入 ASCII 码会被当成是字符,比如我们键入97,那么9会被当成第一个字符,被键入进输入流。
这时我们需要使用整型来获得输入,再强制转换成 char 型字符。
int main(){ int ch; cin >> ch; cout << (char)ch; return 0; }

重要的 ASCII 码 A 65
a 97
所有的大写字母 + 32就会变成小写字母。
2.5 转义字符
作用:用过反斜杠 '\' 表示一些不能显示出来的 ASCII 字符
比较常用的转义字符:
\n 换行符
\\ 反斜杠
\t 水平制表
2.6 字符串
表示一整串字符,一共有两种风格的字符串。
C 风格字符串 语法:char variableName[size] = "……";
这里有两种写法,可以指定字符串的 size,也可以空着 size,这样系统就会自动统计后面的字符串长度,获得一个 size(注意:这里并不是没有,而是系统自动获取了。)
举例:
int main(){ using namespace std; char hello[] = "Hello, World!"; cout << hello << endl; cin.get(); return 0; }

值得一提的是,sizeof 关键字对于 C 风格字符串也是有效的。如果让系统自动统计长度,则会得到字符串的长度+1(因为字符串最后会有一个空字符)。但是如果指定了字符串的大小,则会得到字符串的大小。
C++ 风格字符串 语法:string stringName = "……"
需要包含一个的头文件
全自动生成,而且各种操作更方便一些。
#include using namespace std; int main() { string str = "Hello, World!"; cout << str << '\n'; return 0; }

2.7 布尔类型
作用:表示真或者假
只有两个值:true false 但是其实本质就是1和0
语法:bool variableName = true/false
布尔类型的值输出时,默认输出的就是0或1,这一点和其他的语言是不一样的。
2.8 数据的输入
作用:通过键盘输入数据
语法:cin >> variableName;

    推荐阅读