结束了介绍 c++ 如何将代码编译为机器码的过程的分享。今天介绍一下 c++ 基本数据类型。
有些书籍和教程中有关基本数据类型分类可能与此有所不同。可能有将 bool 和 char 从整型中独立出来。其实 char 和 bool 也都可以归类为整型。
数据类型一个用途就是规定来数据占用内存字节数。
以这里整型为例,int 占内存 4个字节,1 个字节为 8 bit。每个 bit 值为 0 或 1。整型的 1 bit 通过 0 和 1 表示正负信息,其他 31 bit 位表示数值。
我们可以通过计算器计算一下 31 bit 表示数值范围。
如果 int 不需要符号我们在 int 添加 unsigned 来表示无符号的整型数值,这样取值范围也相对变大。
可以为 char 类型变量赋值字母,也可以为赋值一个字母所对应的 ASCII 码,例如 大写的 A 对应 65,如果变量赋值 65 也会打印出字母 A.
我们为变量定义浮点型,下图我们为 float 类型 variable 赋值 5.5. 当鼠标移动 5.5 发现其类型为 double. 这是因为 double 类型包含 float 类型,且我们指定 5.5 为 float 类型,可能有点 confusing,继续向下看吧。
为确保 5.5 为 float 类型,我们需要在数值后加 f,加上 f 后,此时 5.5 就是 float 类型。
通过 sizeof 来获取各个类型所占的字节数
接下来我们介绍一下指针类型数据,指针是 c 和 c++ 的利器,同样也是难于理解的。我们多半都会在这部分内容上花费一定时间来理解什么是指针。有时候我们需要简化问题,看问题的本质。其实指针就是表示内存地址的整型数值。不要为定义他前面的符号和类型所迷惑,指针就是表示内存地址的整型数值,前面定义类型对于指针没有任何意义。如果您掌握了这点,指针就没什么让您 confusing 的了。
computer 主要任务就是处理内存,内存几乎是 computer 的全部。当启动一个应用程序,程序会被读入到内存中,cpu 通过指令来访问内存中数据来执行程序。指针用于处理和管理内存,所以指针是非常重要的。
可以将内存想象为城市一条街道,从头到尾一条线下来,排列 house。指针就是标识每个 house 门牌号。我们发送邮件我们就需要 house 地址,这样才能发送邮件到正确的目的地。
我们来定义指针如下图,prt 就是整型数值,不要被前面 void 所干扰,
如果将 ptr 赋值为 0 或 NULL(其实 NULL 就是 0)来初始化指针。0 对于指针是无效,所以我们不能将 ptr 定义为 0 或 NULL。
我们可以将指针初始化为 c++ 提供的 nullptr。nullprt 是有效值
现在我们定义 int 变量 var 为 8
如果用取址操作符 & 获取 var 储存值得内存地址,然后赋值给指针 prt,然后我们在 9 行上打一个断点,运行调试,当鼠标移到 prt 上,发现 prt 为整型数值,这就是var存储数据的内存地址,复制该数据值(地址)。在菜单栏【调试】>【窗口】>【内存】>【内存1】看起查看内存。
将数值粘贴到地址输入框中, 我就看到 08 00 00 00 为 8
网友评论