C++菜鸟学习笔记系列(3)——基本内置类型的使用

简介: C++菜鸟学习笔记系列(3)——基本内置类型的使用

C++菜鸟学习笔记系列(3)

(前两天比较忙,没有进行更新,今天及时又写了一篇)

本期主题:C++中基本内置类型的使用。

与C语言类似的C++也定义了一套包括算术类型和空类型在内的基本数据类型,其中算术类型包含了字符、整型数、布尔值和浮点数等,在不同的机器上各种类型的尺寸(存储空间)也有所差别。下表中列出了各种数据类型的最小尺寸。

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

图片来源: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++会进行强行转换。

好了今天的博客就写到这里了。

注:虽然这篇博客的内容十分简单,但是大家若有转载还请标明出处!

还有大家若对博客中的内容有任何问题可以随时联系我提问。

目录
相关文章
|
29天前
|
C++
c++学习笔记07 结构体
C++结构体的详细学习笔记07,涵盖了结构体的定义、使用、数组、指针、嵌套、与函数的交互以及在结构体中使用const的示例和解释。
31 0
|
15天前
|
安全 C语言 C++
C++学习笔记
C++学习笔记
|
28天前
|
C++
【学习笔记】【C/C++】 c++字面值常量
【学习笔记】【C/C++】 c++字面值常量
26 1
|
29天前
|
存储 C++
c++学习笔记05 函数
C++函数使用的详细学习笔记05,包括函数的基本格式、值传递、函数声明、以及如何在不同文件中组织函数代码的示例和技巧。
27 0
c++学习笔记05 函数
|
14天前
|
安全 程序员 C语言
C++(四)类型强转
本文详细介绍了C++中的四种类型强制转换:`static_cast`、`reinterpret_cast`、`const_cast`和`dynamic_cast`。每种转换都有其特定用途和适用场景,如`static_cast`用于相关类型间的显式转换,`reinterpret_cast`用于低层内存布局操作,`const_cast`用于添加或移除`const`限定符,而`dynamic_cast`则用于运行时的类型检查和转换。通过具体示例展示了如何正确使用这四种转换操作符,帮助开发者更好地理解和掌握C++中的类型转换机制。
|
20天前
|
C++
使用 QML 类型系统注册 C++ 类型
使用 QML 类型系统注册 C++ 类型
22 0
|
28天前
|
编译器 C++
【C/C++学习笔记】C++声明与定义以及头文件与源文件的用途
【C/C++学习笔记】C++声明与定义以及头文件与源文件的用途
28 0
|
28天前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
30 0
|
29天前
|
C++
c++学习笔记09 引用
C++引用的详细学习笔记,解释了引用的概念、语法、使用注意事项以及引用与变量的关系。
38 0
|
29天前
|
存储 程序员 编译器
c++学习笔记08 内存分区、new和delete的用法
C++内存管理的学习笔记08,介绍了内存分区的概念,包括代码区、全局区、堆区和栈区,以及如何在堆区使用`new`和`delete`进行内存分配和释放。
37 0