p+1

image.png
int a[10;int p = a;(p+n)<->p[n]
image.png
p+1 == p + sizeof(指针p的类型)
p+1指针p由当前所指的内存单元移到下一个内存单元
image.png**

指针运算

image.png

两个指针相减

image.png
两个指针p1、p
p1-p 得到的是两个地址的差/sizeof(p)

*p++

image.png
p++相当于执行了两条语句{p;p++;}

利用*p++遍历数组

image.png
在数组ac[ ]的最后放入一个特殊值(如-1),作为循环结束的判断标志

指针比较

image.png

0地址

image.png

指针的类型

image.png

指针的类型转换

image.png

用指针做什么

image.png

动态内存分配

输入数据

image.png

malloc的使用

image.png
image.png
使用完后,一定要通过free()将内存重新释放

没有空间了

image.png
image.png

free()的使用

image.png
image.png
free只能还所借空间的首地址,其他的地址都不行。只能还一次。

常见问题

image.png
有借有还,malloc和free成对出现。
**

指针初始化

image.png
定义一个指针,先将其初始化为0,用到时再对其赋值,不用时使用free释放它。