&和*的含义
*的基本含义:
- 乘法运算符(双目运算符):出现在表达式中。
- 解引用符(单目运算符):如果预先已经定义了p是一个指针,如int* p,那么,再使用*p就是p所指向地址的值。总是出现在表达式中。
- 指针声明符(定义时):如int *p;总是紧随类型声明符出现,是声明的一部分。
&的基本含义:
- 按位与(双目运算符):出现在表达式中。
- 取地址(单目运算符):出现在表达式中。
- 引用(定义时):这是C++在c功能上的扩展,是为了防止总是使用指针。引用指的是一个变量的别名,定义&b = a,那么b从今以后就是a的一个别名,改变b的值也就改变了a的值。指针可能指向NULL,但引用从声明开始必须赋值。引用的&总是紧随类型名出现。
如何确认&或者*当前的含义?只需要看它用在什么时候,比如&,在定义(声明)或者用在函数参数声明时,就是引用的含义,如果用在单目运算中,那肯定是取地址,如果用在双目运算中,那就是按位与的含义。