c++语言中,“&”符号有4种用途:逻辑与运算符、按位与运算符、取地址运算符、引用标识符。前三种作用在c语言和c++语言中是共有的,而第4种作用是c++中特有的。下边对这4种用途做个介绍。
一、几个相关的概念
1、运算符
c++运算符是指用于执行程序代码运算的符号,其作用是告诉编译器执行特定的数学或逻辑操作的符号。
常见的运算符有:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符,以及其他一系列运算符。
算数运算符:+、-、*、/、%、++、--
关系运算符:>、<、==、>=、<=、!=
逻辑运算符:&&、||、!
位运算符:<<、>>、~、|、^、&
赋值运算符:=
2、表达式
C ++语言中的表达式是由符合 C ++语法规定的运算对象(包括常量、变量、函数调用传回的值等)、运算符、圆括号组成的有意义的算式。
常用的表达式包括:算数表达式、关系表达式、逻辑表达式、赋值表达式。
算数表达式:用算符运算符和圆括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子。
赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。
关系表达式:用关系运算将两个表达式(可以是算数表达式、逻辑表达式、赋值表达式)或变量、常量连接起来的式子。
逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的式子。
二、"&"符号的4个作用
1、逻辑与运算符
格式:操作数1 && 操作数2 (操作数1、操作数2为两个逻辑变量)
逻辑与运算符为2个相连的“&”符号:&&,这是个双目运算符,它要求有两个操作数(操作数可以是关系表达式或逻辑量),两个操作数经与运算后的结果仍为逻辑值。
例1:
int main()
{bool A,B,C;A=true;B=false;C=A && B;cout << C << endl;return 0;
}
运行结果:
0
2、按位与运算符
格式:操作数1 & 操作数2(操作数1、操作数2为两个算数变量)
按位与运算符为1个“&”符号:&,这也是双目运算符,它要求两个操作数是算数量,计算的结果是算数值。
例2:
int main()
{int a=3,b=2,c;c=a & b;cout << c << endl;return 0;
}
运行结果:
2
3、取地址运算符
格式:&变量名(此处变量为数据型变量)
取地址的结果为一个地址型的数据,与指针类型相同。
例3:
int main()
{int a=3,*p;p=&a;cout << p << endl;return 0;
}
运行结果:
0x73ff08
4、引用标志符
格式:数据类型 & 变量名=已声明变量名
引用相当于给一个已知变量另外取一个变量名,两个变量共用一个地址,当其中一个变量重新赋值后,地址内存储的内容发生变化,所以另一个变量的值也就发生了变化。
还需要注意的是:引用声明的同时必须赋值。
例4:
int main()
{int a=3;int &b=a;cout << a << b << endl;a=5;cout << a << b << endl;b=7;cout << a << b << endl;return 0;
}
运行结果:
3 3
5 5
7 7
(全文结束)