& 符号的意思是取地址,也就是返回一个对象在内存中的地址。
* 符号的意思是取得一个指针所指向的对象。 也就是如果一个指针保存着一个内存地址,那么它就返回在那个地址的对象。
简单点就是:&:取址。* :取值。
对于理解和记忆,把多个事物共用一种方式来理解是比较省脑力的。
所以,把:
- & 符号 理解为一个方法:输入为“引用”,输出为“指针”;
- * 符号 理解为一个方法:输入为“指针”,输出为“引用”。
明白“运算符重载”的机制,应该能更好加深理解。
另外,我想是否可以认为:
- 引用是高级编程语言的特性,遵循高级编程语言的约束。
- 指针是低级编程语言的特性,可穿透高级编程语言的约束进行操作。