Android NDK开发之旅-C指针(包含多级)
先贴一下代码和运行结果:
个人理解:
1、*,表示声明成指针,几个*,代表着几级指针
2、指针存只放地址,如上例中,打印p,p2,p3,用“%#x”,取到其上一级的16进制的内存地址
3、如上例中,*p或**p2或***p3等等,都代表着取一级指针存放的地址上所存储的值
如上*p,**p2,***p3的值都是10(后面不改变p的指向)
4、一级指针指向地址改变,后面的指针都变
如上例中,指针p,指向的是i的地址,即后面**p2,***p3的值是10
但后面将指针p的指向改为int a的地址,后面的**p2 和***p3的值也改为40
5、可以通过指针来改变一级指针指向地址在内存中的值
如上例中,可以通过*p=20或**p2=20或***p3=20来改变i(后面改为了a)的值(上面没贴,看了这段话,你应该能明白了吧)
没C的指针,就没有Java的OOP(面对对象思想)
上面试一些个人理解,可能有点绕,能帮助各位理解就好。