C++菜鸟学习笔记系列(3)
(前两天比较忙,没有进行更新,今天及时又写了一篇)
本期主题:C++中基本内置类型的使用。
与C语言类似的C++也定义了一套包括算术类型和空类型在内的基本数据类型,其中算术类型包含了字符、整型数、布尔值和浮点数等,在不同的机器上各种类型的尺寸(存储空间)也有所差别。下表中列出了各种数据类型的最小尺寸。
图片来源:C++ primer 2.1 基础内置类型
小知识:对于比特、字节、字的含义及组成很多同学可能还理解不太清楚,作者就以自己对其含义的理解为大家介绍一下:
计算机中最小的运算单元是比特:每个bit非0即1,8 bit 又组成一个字节。
字节(byte)是计算机的最小可寻址内存块。
而存储的基本单元是“字”,一个“字”由4或8个字节组成,即32或64个比特,也就是32位或者64位。
内置类型的自动转换
在C++中如果我们使用了A类型来定义一个变量 a,但是却给它输入了B类型的数据,则程序会自动进行类型转换。
下面我们就看一下某种类型的对象被强行赋予了另一种类型的值时会发生什么改变。
/* Author: wxc_1998 Date: 2018/9/20 */ #include <iostream> using namespace std; void main() { int i; i = 3.1415926; cout << "the value of i is : " << i; bool flag; flag = i; cout << endl << "the value of flag is:" << flag ; double pi; pi = i; cout << endl << "the value of pi is:" << pi ; unsigned char c = 1; cout << endl << "the value of c is:" << c ; cout << endl << "press any key to continue!" << endl; cin.clear(); cin.sync(); cin.get(); }
当然在大多数我们肯定不会犯这种错误,我们既然定义了一个变量为整型数,那么我们为什么要故意输入浮点数呢?但是我们在写代码时却经常不可避免的在运算过程中产生一些不符合定义类型的情况出现。
下面我们再看一个小例子:
/* Author: wxc_1998 Date: 2018/9/20 */ #include <iostream> using namespace std; void main() { int i = -10; unsigned int u = 5; double d =3.14; cout << "i + i = " << i + i << endl; cout << "u + u = " << u + u << endl; cout << "u + i = " << u + i << endl; cout << "u - i = " << u - i << endl; cout << "i - u = " << i - u << endl; cout << "i + d = " << i + d << endl; cout << "i - d = " << i - d << endl; cout << endl << "press any key to continue!" << endl; cin.clear(); cin.sync(); cin.get(); }
对于超出取值范围的情况,C++会进行取余运算;而对于取值类型改变的情况C++会进行强行转换。
好了今天的博客就写到这里了。
注:虽然这篇博客的内容十分简单,但是大家若有转载还请标明出处!
还有大家若对博客中的内容有任何问题可以随时联系我提问。