指针:同int,char一样是一个变量,但他的作用是储存一个变量的地址
所以可以说:指针就是地址,地址就是指针
指针中核心的两个操作符:
1. * (指针解引用操作符)
2. & (取地址操作符)
总结: *地址 == 变量 ; &变量 == 地址
举个例子:
我们首先定义了了一个整形变量a,然后定义一个int*类型的变量p,用来存放a的地址
这里在定义指针p时,类型为int*,是指这个p存储一个int类型的数据(同理,如果定义一个char*类的指针,那么将会用来存储一字符型变量的地址,同样,如果存放数组或是函数的地址,就有数组指针,函数指针等等)
二级指针:就是用来存放一级指针变量的地址的指针
三级四级以此类推,不过很少使用
数组指针:存放数组的地址的指针
我们需要将这两区分开来
注意:虽然两个地址相等,但在指针运算时 +1
pp+1将跨越整个数组大小,解引用后指向0后面一个位置的元素
p+1 跨越一个元素,从1到2
函数指针:存放函数的地址的指针
分享到这,下期见!