大家好,我是小锋,我们紧接上文
指针运算
1.指针+-整数
我们通过代码可以看出指针加整数会向后跳过与类型对应的空间
2.指针-指针

从以上代码我们可以看出指针减指针得到的是两指针所存地址之间类型空间数
3.指针的关系运算


对比上下两段代码我们可以发现它们的作用都是将数组add的元素赋值为0,只是比较的方向不同其实在绝大部分的编译器上是可以顺利完成任务的,然而我们还是应该避免这样写,因为标准并不保证它可行。
标准规定:
允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与 指向第一个元素之前的那个内存位置的指针进行比较。
我们知道指针中存放的是地址那我们可不可以通过改变指针中的地址从而达到改变变量的地址的目的

答案当然是不行指针存放的地址就行写再信封上的地址我们可以通过地址找到变量但却不能通过改变信封上的地址就使实际上的地址发生改变
指针和数组

从代码中我们可以看出数组名就是数组首元素地址;既然是地址那我们可以用一个指针变量来存储它, 从而实现用指针来访问地址

我们可以看到指针所指向的地址正是数组对应元素的地址,说明可以用指针来访问数组。 所以 p+i 其实计算的是数组 arr 下标为i的地址,那我们就可以直接通过指针来访问数组。

二级指针
指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?
答案是存放在二级指针中。

那么根据一级指针我们是不是可以通过对指针p的地址解引用来访问p,再由p访问到啊。

指针数组
大家注意(指针数组是数组)
指针数组是存放指针的数组

跟数组差不多只不过指针数组存放的元素是地址;
以上就是全部内容了,如果有错误或者不足的地方欢迎大家给予建议。

11万+

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



