
点击蓝字 关注我们

第四节 运算符

C++运算符用于执行各种操作,下面是一些常见的C++运算符:
算术运算符:用于执行基本的数学运算,如加法(+)、减法(-)、乘法(*)、除法(/)、取模(%)等。
int a = 11;int b = 10;cout <<"a+b="<< a + b << endl;//加法运算cout << "a-b=" << a - b << endl;//减法运算cout << "a*b=" << a * b << endl; //乘法运算cout << "a/b=" << a b << endl;//除法运算cout << "a%b=" << a % b << endl;//取模运算(取余)
结果如下:
a+b=21a-b=1a*b=110a/b=1a%b=1
赋值运算符:用于将值赋给变量,如等号(=)、加等(+=)、减等(-=)等。
int c;c = a + b;//赋值运算cout << "c=" << c << endl;a += 1;//a=a+1cout << "a=" << a << endl;a -= 1;//a=a-1,a此时已经变成新值12,此运算结果为11cout << "a=" << a << endl;a *= 2;//a=a*2cout << "a=" << a << endl;//以此类推/或%
结果如下:
c=21a=12a=11a=22
比较运算符:用于比较两个值,如相等(==)、不等(!=)、大于(>)、小于(<)等。
int d;d = a > b;//比较运算符,结果为1或0,1为真,0为假cout << "d=" << d << endl;d = (a == b);//"=="为数学中的等于号,"="为赋值号cout << "d=" << d << endl;//a==b为假,符号表示为a!=b//以此类推!=,<,>=.<=;
结果如下:
d=1d=0
逻辑运算符:用于执行逻辑运算,如与(&&)、或(||)、非(!)等。
int m1 = 1;//非0为真int m2 = 0;//0代表假int m0;m0 = m1 && m2;//与运算符,全真为真,有假为假cout << "m0=" << m0 << endl;m0 = m1 || m2;//或运算符,有真为真,全假才假cout << "m0=" << m0 << endl;m0 = !m1;//非运算符,取反,m1为假,则m0为真;m1为真,则m0为假cout << "m0=" << m0 << endl;
结果如下:
m0=0m0=1m0=0
位运算符:用于对二进制位进行操作,如按位与(&)、按位或(|)、按位取反(~)等。
int a1 = 5;//5的2进制表示0101int b1 = 4;//4的2进制表示0100int c = a1& b1;//与运算符(&):对两个操作数的每个位执行逻辑与操作。cout << "a1&b1=" << c << endl;int d = a1 | b1;//或运算符(|):对两个操作数的每个位执行逻辑或操作。cout << "a1|b1=" << d<< endl;int e = ~a1;//非运算符(~):对操作数的每个位执行逻辑非操作,即取反。cout << "~a1=" << e << endl;int f = a1 ^ b1;//异或运算符(^):对两个操作数的每个位执行逻辑异或操作。cout << "a1^b1=" << f << endl;//0101^0100为0001,位相同为0,位不同为1int g1 = a1<<2;//左移运算符(<<):将操作数的所有位向左移动指定的位数。cout << "a1<<2=" << g1 << endl;//0101左移两位,010100int g2 = b1>>2;//右移运算符(>>):将操作数的所有位向右移动指定的位数。cout << "b1>>2=" <<g2 << endl;//0100右移两位0001
结果如下:
a1&b1=4a1|b1=5~a1=-6a1^b1=1a1<<2=20b1>>2=1
条件运算符(三元运算符):使用“?:”来根据条件选择值。
语法为:条件语句?值1:值2;含义为:条件语句正确结果为值1,不正确结果为值2,例子如下:
int a = 7;int b = 5;int c = (a > b) ? a : b;cout << "a和b的较大值为:" << c<< endl;
结果如下:
a和b的较大值为:7
如果把a和b值交换呢?
int a = 5;int b = 7;int c = (a > b) ? a : b;cout << "a和b的较大值为:" << c<< endl;
结果如下:
a和b的较大值为:7
递增和递减运算符:用于增加或减少变量的值,如递增(++)、递减(--)。
int a = 5;a++;cout << "a=" << a << endl;int b = 7;b--;cout << "b=" << b<< endl;
结果如下:
a=6b=6
成员访问运算符:用于访问类、结构体和联合的成员,如点运算符(.)和箭头运算符(->),后续章节中讲述。
运算符优先级
c++运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。以下从上到下为优先级从高到低比较。
| 类别 | 运算符 | 结合性 |
|---|---|---|
| 后缀 | () [] -> . ++ - - | 从左到右 |
| 一元 | + - ! ~ ++ - - (type)* & sizeof | 从右到左 |
| 乘除 | * % | 从左到右 |
| 加减 | + - | 从左到右 |
| 移位 | << >> | 从左到右 |
| 关系 | < <= > >= | 从左到右 |
| 相等 | == != | 从左到右 |
| 位与 AND | & | 从左到右 |
| 位异或 XOR | ^ | 从左到右 |
| 位或 OR | | | 从左到右 |
| 逻辑与 AND | && | 从左到右 |
| 逻辑或 OR | || | 从左到右 |
| 条件 | ?: | 从右到左 |
| 赋值 | = += -= *= = %=>>= <<= &= ^= |= | 从右到左 |
| 逗号 | , | 从左到右 |
END
往期推荐
C++基础学习:第一节-数据类型
C++基础学习:第二节-变量与常量
C++基础学习:第三节-变量作用域
文章转载自Cpp入门到精通,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




