继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

C++ 写个游戏引擎—(基础篇)5

青春有我
关注TA
已关注
手记 1210
粉丝 205
获赞 1008

结束了介绍 c++ 如何将代码编译为机器码的过程的分享。今天介绍一下 c++ 基本数据类型。

webp

有些书籍和教程中有关基本数据类型分类可能与此有所不同。可能有将 bool 和 char 从整型中独立出来。其实 char 和 bool 也都可以归类为整型。

数据类型一个用途就是规定来数据占用内存字节数。

webp

以这里整型为例,int 占内存 4个字节,1 个字节为 8 bit。每个 bit 值为 0 或 1。整型的 1 bit 通过 0 和 1 表示正负信息,其他 31 bit 位表示数值。

我们可以通过计算器计算一下 31 bit 表示数值范围。

webp

如果 int 不需要符号我们在 int 添加 unsigned 来表示无符号的整型数值,这样取值范围也相对变大。

webp

webp

可以为 char 类型变量赋值字母,也可以为赋值一个字母所对应的 ASCII 码,例如 大写的 A 对应 65,如果变量赋值 65 也会打印出字母 A.

webp

我们为变量定义浮点型,下图我们为 float 类型 variable 赋值 5.5. 当鼠标移动 5.5 发现其类型为 double. 这是因为 double 类型包含 float 类型,且我们指定 5.5 为 float 类型,可能有点 confusing,继续向下看吧。

webp

为确保 5.5 为 float 类型,我们需要在数值后加 f,加上 f 后,此时 5.5 就是 float 类型。

webp

通过 sizeof 来获取各个类型所占的字节数

webp

接下来我们介绍一下指针类型数据,指针是 c 和 c++ 的利器,同样也是难于理解的。我们多半都会在这部分内容上花费一定时间来理解什么是指针。有时候我们需要简化问题,看问题的本质。其实指针就是表示内存地址的整型数值。不要为定义他前面的符号和类型所迷惑,指针就是表示内存地址的整型数值,前面定义类型对于指针没有任何意义。如果您掌握了这点,指针就没什么让您 confusing 的了。

computer 主要任务就是处理内存,内存几乎是 computer 的全部。当启动一个应用程序,程序会被读入到内存中,cpu 通过指令来访问内存中数据来执行程序。指针用于处理和管理内存,所以指针是非常重要的。

可以将内存想象为城市一条街道,从头到尾一条线下来,排列 house。指针就是标识每个 house 门牌号。我们发送邮件我们就需要 house 地址,这样才能发送邮件到正确的目的地。

我们来定义指针如下图,prt 就是整型数值,不要被前面 void 所干扰,

如果将 ptr 赋值为 0 或 NULL(其实 NULL 就是 0)来初始化指针。0 对于指针是无效,所以我们不能将 ptr 定义为 0 或 NULL。

webp

webp

我们可以将指针初始化为 c++ 提供的 nullptr。nullprt 是有效值

webp

现在我们定义 int 变量 var 为 8

webp

如果用取址操作符 & 获取 var 储存值得内存地址,然后赋值给指针 prt,然后我们在 9 行上打一个断点,运行调试,当鼠标移到 prt 上,发现 prt 为整型数值,这就是var存储数据的内存地址,复制该数据值(地址)。在菜单栏【调试】>【窗口】>【内存】>【内存1】看起查看内存。

webp

将数值粘贴到地址输入框中, 我就看到 08 00 00 00 为 8

webp



作者:zidea
链接:https://www.jianshu.com/p/3c8ad87ed549


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP