1.赋值预算 =
//给变量赋值,在赋值过程中存在左值和右值
左值:
在赋值号=左边的变量
左值必须是变量
表示变量在内存中的空间
右值:
在赋值号=右边的值
右值可以是常量,变量,表达式等
表示一个数值
赋值:从右到左赋值,就是将右边的值保存到左边的变量空间中。
例如:
int a,b,c ;
a = 10; //正确
10 = a; //错误
b = a; //正确
c = 2+4; //正确
2.算数运算符:+ - / % ++ –
取余运算%:
左右两边必须是整数
++和–:
对某个变量空间中的值加1;然后再保存到变量的空间中
如果++和–在变量的右边,则先取变量的值参与其他运算,最后再对变量++或–
例如:
int a = 5,b = 3,c;
c = a + b++;
a = ? //5
b = ? //4
c = ? //8
如果++或–在变量的左边,则先对变量++或–,然后再取出变量的值,参与其他运算
例如:
int a = 5,b = 3,c;
c = a + ++b;
a = ? //5
b = ? //4
c = ? //9
3.逻辑运算:! && ||
逻辑运算一般用于条件判断句中
//真假值运算
逻辑取反: !----------- 把真变假,把假变真
逻辑与:&& ----------- 按下面的真值表运算
表达式A && 表达式B = 结果
表达式A | 表达式B | 结果 |
---|---|---|
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 假 |
//如果表达式A为假,则表达式B不会执行,结果直接为假
逻辑或: || -------- 按羡慕的真值表运算
表达式A || 表达式B = 结果
表达式A | 表达式B | 结果 |
---|---|---|
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
//如果表达式A为真,则表达式B就不会执行,结果直接为真
4.位运算: ~ & | ^ << >>
整数的位运算,指的是按二进制位进行逻辑运算
例如:
char a = 5, b = 3;
a : 0000 0101
~a: 1111 1010 ---> -6
//对应二进制位取反
a : 0000 0101
b : 0000 0011
a & b : 0000 0001 ----> 1
//对应的二进制位同为1,结果则为1,否则结果为0
a : 0000 0101
b : 0000 0011
a | b : 0000 0111 ----> 7
//对应的二进制位同为0,结果则为0,否则结果为1
a : 0000 0101
b : 0000 0011
a ^ b : 0000 0110 ----> 6
//对应的二进制位相同为0,不同为1
//左移位:在最右边补0即可
a : 0000 0101
a<<2: 00 00 010100 ---->20
//右移位:无符号数:在左边补0;有符号数:整数左边补0,负数左边补1
a : 0000 0101
a>>2: 0000 0001-->01 ---->1
-6 : 1111 1010
-6>>2: 1111 1110-->10 -----> -2
5.关系运算:> >= < <= == !=
//比较两个数的大小,关系运算的结果为bool类型的值
int a = 5, b = 3;
a > b ---> 真
a < b ---> 假
a == b ---> 假
a != b ---> 真
6.复合运算:+= *= <<= &= !=
//算数运算,位运算和赋值运算合并使用,就是复合运算
//当一个变量即出现在左值,又出现在右值,则可以使用复合运算
例如:
int a = 5, b = 3;
a = a + b; ----> a += b;
a = a <<2; ----> a <<= 2;
7.条件运算: ? :
格式:
表达式1 ? 表达式2 : 表达式3
//如果表达式1为真,则结果取表达式2的值,否则为表达式3的值
例如:
int a = 5, b = 3;
a < b ? 20 : 10 //如果a<b为真,则结果为20,否则,结果为10
8.逗号运算: ,
将多个表达式一起运算,运算结果取最右边的表达式的值
例如:
int a = 5, b = 3;
c = (a=1,b=2,a+=b,a+b) //c = 5
9.sizeof运算符
//用于计算变量在内存中的空间长度,或者类型的大小
char a;
short b;
double d;
//变量空间的大小
sizeof(a) --> 1 或 sizeof a --> 1
sizeof(d) --> 8 或 sizeof d -->8
//计算类型长度
sizeof(char) = 1
sizeof(double) = 8