- 在c语言中地址就是指针,而我们口头所说的指针大多数指的是指针变量
- 有空间才会有地址,而一个字节就有一个地址;(如图)
- 地址是由小到大的
这里就不继续谈地址了多谈谈指针
一:什么是指针变量
- 每个变量都有地址,而把一个变量a的地址放到另一个变量p中,那么我们就说这个存放地址的变量p是指向变量a的指针变量(如图)
二:指针的应用
- 当指针变量声明好后就可以用符号 * 来应用了(如图)
三:指针的加减整数
- 指针(地址)是可以加减整数的看下图
这时候就有疑问了,为什么35行和36行没有取地址符号 & 为什么还能拿到首元素地址?
因为在大部分情况下数组名代表为首元素地址
只有两种情况下数组名才代表整个数组 看下图
三:野指针(指向不属于本程序所拥有的的空间的指针)
- 当了解完指针的加减整数后,特别容易出现现野指针(如图)
当然野指针出现的地方不只这两种情况而是非常多的地方,这里就不多说了;
野指针的本质就是一个指向了一个不属于本程序或者已经销毁(释放)的空间的指针
四:2级指针的概念与应用
- 2级指针即存放(指针变量地址)的指针 如图
- 2级指针的应用方法 如图
当然指针是可以无限嵌套下去的,比如3级指针(存放2级指针变量地址的指针)、4级指针(存放3级指针变量地址的指针),我就不继续向下讨论了,有兴趣的可以自己了解一下。
五:数组指针
- 数组指针即一个指针变量指向一个数组(存放了一个数组首元素地址的指针)(如图)
- 数组指针的应用要与指针加减结合应用(如图)
- 地址的比较方法(如图)
由于今天时间不多了更新的内容就这些了,下次更新以下内容
数组指针后还有指针数组(存放指针变量的数组)、指针数组指针(存放指针数组首元素的地址的变量)还可以嵌套下去。
函数指针(存放函数的地址的变量),函数指针数组(存放函数指针的数组),函数指针数组指针,(存放函数指针数组首元素地址的指针),还可以向下嵌套
如果内容有什么写错了欢迎评论批评纠错。