Bootstrap

指针_学习

1.指针是内存中一个最小单元的编号,也就是地址

2.平常口头所说的指针实际上是指针变量,用来存放地址的。

        口语中说的指针,其实是指针变量,而指针变量就是一个变量,用来存放地址的一个变量。

        内存单元中的地址是由硬件生成的,不需要存起来。

        指针变量里边存放的是地址,而通过这个地址,就可以找到一个内存单元。

3.①指针类型决定了指针在被解引用的时候访问几个字节

        如果是int *的指针,解引用访问4个字节

        如果是char *的指针,解引用访问1个字节

        推广到其他类型

  ②指针的类型决定了指针+-1操作的时候,跳过几个字节,决定了指针的步长

4.野指针:是指指针指向的位置是不可知的

        如何避免野指针:

                1)指针初始化

                2)小心指针越界

                3)指针指向空间释放即时置NULL

                4)避免返回局部变量的地址

                5)指针使用之前检查有效性

5.指针-指针的绝对值得到的指针和指针之间元素的个数

        不是所有的指针都能相减,指向同一块空间的两个指针才能相减

        标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比                              较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。

6.二级指针变量是用来存放一级指针变量的地址的

7.指针数组:存放指针的数组

8.arr[i] <==> *(arr+i)

;