运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++内置了丰富的运算符,并提供了以下类型的运算符:
本文将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。
算术运算符
下表显示了C++支持的所有算术运算符。假设变量A的值为10,变量B的值为20,则:运算符描述实例+把两个操作数相加A+B将得到30-从第一个操作数中减去第二个操作数A-B将得到-10*把两个操作数相乘A*B将得到200/分子除以分母B/A将得到2%取模运算符,整除后的余数B%A将得到0++自增运算符,整数值增加1A++将得到11--自减运算符,整数值减少1A--将得到9实例
请看下面的实例,了解C++中所有可用的算术运算符。复制并黏贴下面的C++程序到test.cpp文件中,编译并运行程序。
#include Line1-c的值是31Line2-c的值是11Line3-c的值是210Line4-c的值是2Line5-c的值是1Line6-c的值是21Line7-c的值是22关系运算符 下表显示了C++支持的所有关系运算符。假设变量A的值为10,变量B的值为20,则:运算符描述实例==检查两个操作数的值是否相等,如果相等则条件为真。(A==B)不为真。!=检查两个操作数的值是否相等,如果不相等则条件为真。(A!=B)为真。>检查左操作数的值是否大于右操作数的值,如果是则条件为真。(A>B)不为真。<检查左操作数的值是否小于右操作数的值,如果是则条件为真。(A=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。(A>=B)不为真。<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。(A<=B)为真。实例 请看下面的实例,了解C++中所有可用的关系运算符。复制并黏贴下面的C++程序到test.cpp文件中,编译并运行程序。 #include Line1-a不等于bLine2-a不小于bLine3-a大于bLine4-a小于或等于bLine5-b大于或等于b逻辑运算符 下表显示了C++支持的所有关系逻辑运算符。假设变量A的值为1,变量B的值为0,则:运算符描述实例&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。(A&&B)为假。||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。(A||B)为真。!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。!(A&&B)为真。实例 请看下面的实例,了解C++中所有可用的逻辑运算符。复制并黏贴下面的C++程序到test.cpp文件中,编译并运行程序。 #include Line1-条件为真Line2-条件为真Line3-条件不为真Line4-条件为真位运算符 位运算符作用于位,并逐位执行操作。&、|和^的真值表如下所示:pqp&qp|qp^q00000010111111010011假设如果A=60,且B=13,现在以二进制格式表示,它们如下所示: A=00111100B=00001101-----------------A&B=00001100A|B=00111101A^B=00110001~A=11000011下表显示了C++支持的位运算符。假设变量A的值为60,变量B的值为13,则:运算符描述实例&如果同时存在于两个操作数中,二进制AND运算符复制一位到结果中。(A&B)将得到12,即为00001100|如果存在于任一操作数中,二进制OR运算符复制一位到结果中。(A|B)将得到61,即为00111101^如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。(A^B)将得到49,即为00110001~二进制补码运算符是一元运算符,具有"翻转"位效果。(~A)将得到-61,即为11000011,2的补码形式,带符号的二进制数。<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。A<<2将得到240,即为11110000>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。A>>2将得到15,即为00001111实例 请看下面的实例,了解C++中所有可用的位运算符。复制并黏贴下面的C++程序到test.cpp文件中,编译并运行程序。 #include Line1-c的值是12Line2-c的值是61Line3-c的值是49Line4-c的值是-61Line5-c的值是240Line6-c的值是15赋值运算符 下表列出了C++支持的赋值运算符:运算符描述实例=简单的赋值运算符,把右边操作数的值赋给左边操作数C=A+B将把A+B的值赋给C+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数C+=A相当于C=C+A-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数C-=A相当于C=C-A*=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数C=A相当于C=CA/=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数C/=A相当于C=C/A%=求模且赋值运算符,求两个操作数的模赋值给左边操作数C%=A相当于C=C%A<<=左移且赋值运算符C<<=2等同于C=C<<2>>=右移且赋值运算符C>>=2等同于C=C>>2&=按位与且赋值运算符C&=2等同于C=C&2^=按位异或且赋值运算符C^=2等同于C=C^2|=按位或且赋值运算符C|=2等同于C=C|2实例 请看下面的实例,了解C++中所有可用的赋值运算符。复制并黏贴下面的C++程序到test.cpp文件中,编译并运行程序。 #include Line1-=运算符实例,c的值=21Line2-+=运算符实例,c的值=42Line3--=运算符实例,c的值=21Line4-*=运算符实例,c的值=441Line5-/=运算符实例,c的值=21Line6-%=运算符实例,c的值=11Line7-<<=运算符实例,c的值=44Line8->>=运算符实例,c的值=11Line9-&=运算符实例,c的值=2Line10-^=运算符实例,c的值=0Line11-|=运算符实例,c的值=2杂项运算符 请看下面的实例,了解C++中运算符的优先级。复制并黏贴下面的C++程序到test.cpp文件中,编译并运行程序。对比有括号和没有括号时的区别,这将产生不同的结果。因为()、/、*和+有不同的优先级,高优先级的操作符将优先计算。 #include (a+b)*c/d的值是90((a+b)*c)/d的值是90(a+b)*(c/d)的值是90a+(b*c)/d的值是50