你的输出第一行肯定和我不一样,且每次运行的输出肯定不一样。
如果你学过点底层知识,一定能看出来第一行是个十六进制数。没错它就是个地址。
为什么会有这样的结果呢?
通过图片解析下你就明白了(第一行变量名,第二行变量的值,第三行变量的地址。注意 p2 p1 地址未知,是假设的)
可以看到,*p2实际上指的是p1,而它的值则是a的地址。而**p2才指的是a本身。也就是说,解引用一次,就找一次地址对应的对象。要想获得a,则必须解引用两次。
再再再恭喜你一下,你已经完全明白了指针的简单使用。
指针和引用
通过上面的讲解,我们不难得出结论:
- 指针是对象
- 引用不是对象
- 指针、引用可以指向的是对象
- (推论)指针可以指向指针
所以显然可以推出:
- 引用可以指向指针
- 指针不能指向引用
