16年写了很多 C 与 C++ 相关的文章,但是后面从事了 Android 开发,就全部删掉了,无意中发现了这篇由还存在草稿箱,索性就找回来吧,也是追忆当年学习的青葱岁月
1.指针就是一个存储了其他变量地址的变量。
- 指针存储的是整型二进制数,这个二进制数的含义是:某个变量在内存中的地址
- 这个二进制数的大小与计算机系统位数有关,如果是32位机器就是4字节的,如果是64位机器就是8字节的,根据机器字而决定的,用户不能控制。
- 指针自身的大小与它指向的类型无关,无非就是表示一个地址而已,地址中存放的具体数据与指针无关
所以指针的默认为
32位系统 | 64系统 |
---|---|
in型 | long型 |
4byte=32bit | 8byte=64bit |
2.
float a = 4.0;
float * p = &a;
float *”定义了 p 是一个指向了_float_类型的变量的指针。
就是 :p = &a;//将代号为a单元的地址付给p
而 : *p = a;//*p就可以代表a单元中储存的内容
3.多维指针
- int * * p2 = &p 定义p2指向 p 的指针
- "int *"和 p 的类型定义是相同的,“*”定义了 p2 为一个指针。
4.野指针 & 空指针
- 野指针:未被初始化的指针,里面的内容是垃圾地址;
- 空指针:被初始化为NULL的指针,里面的地址是0;