首页 > 代码库 > 第四课 C++中的运算符、表达式
第四课 C++中的运算符、表达式
运算符就名词上来说就是用来运算的一些符号,而一个表达式则是由语句和运算符组合。如x=5,或x=a+b这些都是表达式。首先详解讲解运算符。
运算符可以分为赋值运算符,数学运算符,关系运算符。赋值运算符用(=)表示。如x= 1意思是将1的值赋给x,而不是数学中的相等,这里一定要区别清楚。
那数学运算符就是我们常用的+,-,*,/,%. C++中还有自增运算,和自减元算,如i++,i--,++i,--i这些元算符通常通常很容易搞错,特别是遇到比较复杂的表达式的时候,很容易搞错。++i在前也叫前自增,顾命思意就是将i的值先递增,让后在赋值,而i++则是则相反,先赋值,然后在递增。举例说明:
1 #include "stdafx.h" 2 3 #include <iostream> 4 using namespace std; 5 int main(int argc, char* argv[]) 6 { 7 int i = 10; 8 int j = 10; 9 cout<<"i = "<<i<<endl;10 cout <<"J = "<<j<<endl;11 i++;12 ++j;13 cout<<"i = "<<i<<endl;14 cout<<"j = "<<j<<endl;15 cout<<"i++="<<i++<<endl;16 cout<<"++j="<<++j<<endl;17 18 return 0;19 }
返回结果我们可以清楚的看到13,14行的结果一样。15行结果为11,而16行是12.,这就说明了前自增就是先加一在赋值。
关系运算符
关系运算符就是将两个数进行比较。常见的有=、<、>、<=、>=、!=
名称 | 运算符 | 示例 | 结果 |
等于 | == | 1==2 | false |
不等于 | != | 1 !=2 | true |
大于 | > | 1>2 | false |
小于 | < | 1<2 | true |
大于等于 | >= | 1>=2 | false |
小于等于 | <= | 1<=2 | true |
逻辑运算符
逻辑运算符包括!(非)、&&(与)、||(或),优先级依次降低。用逻辑运算符将关系表达式连起来就是逻辑表达式,逻辑表达式的结果也是bool类型,值也只能是true或false。"!"是一元运算符,使用形式是!操作数。非运算是对操作数取反。比如!a,a的值是true,则!a的值是false。"&&"是二元运算符,用来求两个操作数的逻辑与,只有两个操作数的值都是true,逻辑与的结果才是true,其他情况下结果都是false。"||"也是二元运算符,用来求两个操作数的逻辑或,只有两个操作数的值都是false时,逻辑或的结果才是false,其他情况下结果都是true。比如,int a=3,b=5,c=2,d=1; 则逻辑表达式(a>b)&&(c>d)的值为false。
sizeof运算符
sizeof运算符用来计算某个对象在内存中占用的字节数。此运算符的使用形式为:sizeof(类型名)或sizeof(表达式)。计算结果是这个类型或者这个表达式结果在内存中占的字节数。
三目运算符
表达是1?表达式2:表达式3其含义表示:
如果表达式1的值为真,则返回表达式2的值,如果为假,则返回表达式3的值。
举例
if(1>2)?1:2;
结果为2返回表达式3的值。
位运算符
按位与(&)。它是对两个操作数的二进制形式的每一位分别进行逻辑与操作。比如3的二进制形式为00000011,5的二进制形式为00000101,按位与后结果是00000001。
按位或(|)。它对两个操作数的二进制形式的每一位分别进行逻辑或操作。还是比如3和5按位或运算后结果是00000111。
按位异或(^)。它对两个操作数的每一位进行异或,也就是如果对应位相同则运算结果为0,若对应位不同则计算结果为1。例如3和5按位异或后结果为00000110。
按位取反(~)。这是一个一元运算符。它对一个二进制数的每一位求反。比如,3按位取反就是11111100。
移位。包括左移运算(<<)和右移运算(>>),都是二元运算符。移位运算符左边的数是需要移位的数值,右边的数是移动的位数。左移是按指定的位数将一个数的二进制值向左移位,左移后,低位补0,移出的高位舍弃。右移是按照指定的位数将一个数的二进制值向右移位,右移后,移出的低位舍弃,如果是无符号数则高位补0,如果是有符号数,则高位补符号位或0,一般补符号位。比如,char型变量的值是-8,则它在内存中的二进制补码值是11111000,所以a>>2则需要将最右边两个0移出,最左边补两个1,因为符号位是1,则结果为11111110,对其再求补码就得到最终结果-2。
第四课 C++中的运算符、表达式