目录
定义
指针就是一个变量,其值是另一个变量的内存地址。这也是C和C++语言直接操作内存的最直接体现,最灵活也是最容易出错的地方。
指针占用内存大小
根据定义,指针是一个变量,存放的值是内存地址,所以其占用大小取决于计算机的内存地址大小。对于64位计算机,其地址是64位,此时指针变量占8字节,对于32位计算机,其地址是32位,指针变量占4字节。(这里所说的多少位计算机一般指的是计算机中寄存器的位数,也是计算机的地址位数,也是cpu在单位时间内能处理,传输的位数)。
指针的类型系统
由于指针变量只是存放了一个地址,所以它的类型就至关重要,决定了指针算术运算的步长,解引用时访问的内存大小,类型安全检查。
- 指针算术运算的步长,由于其值是地址,当指针指向数组中的元素时,其+1,地址变化取决于其类型,int的话则地址+4,double的话则地址+8.
- 由于指针的值只是地址,所以并不知道指向的地址是什么内容,所以得以类型告诉它指向的内容是什么,在使用时才知道应该读取多大的内存,如何解释这些字节。
- 指针的类型显性告知才能让编译器进行的很多类型的检查,如强制转换是否合法,赋值是否合适等。

最低0.47元/天 解锁文章
977

被折叠的 条评论
为什么被折叠?



