一,算数运算符
1.我们常见的算术运算符有:
+ ,- ,* ,/,%(取余)
eg.1
代码示例:
结果:
2.自增运算符:++
int a=10;
a=a+1;
printf("%d",a);//打印出的结果为11;可以等价为a++,++a;
自减运算符: --
int b=5;
b=b-1;
printf("%d",b);//聪明的你可能去已经猜到了,没错结果就是4;可以等价为b--,--b;
看到这里你可能会有一些疑问?
为什莫会有a++,++a;b--,--b;两种不同的写法;难道它们之间没有什么区别吗?
机智如你,肯定是有的,下面我会给出使用它们的原则:
尽量少用!
++(--)在变量之后,变量先参与运算,在自增或自减;
++(--)在变量之前,变量先自增或自减,再进行运算;
许多人在使用时一个不留神可能会出错;
为了方便理解,我给出以下例子:
eg.2
代码示例:
结果正如我分析的那样,机智的我,还不给个赞。
二,比较运算符
> , < , <= , >= , == , !=;
结果:要么为0(假),要么为1(真)。
C语言中非0都为真!
eg.3
代码示例:
结果:
三,逻辑运算符
1.逻辑与(短路与)&&
条件1 && 条件2
此表达式要成立,条件1和条件2都要成立;
2.逻辑或(短路或)||
条件1 || 条件2
此表达式要成立,条件1和条件2只要一个成立即可;
3.逻辑非 !
将假的变成真的,将真的变成假的。
逻辑运算符的结果是0或1;
!(n1<n2 || n1>10)== (n1>=n2&&n2<=10)
四,位运算符
是对二进制位进行运算操作
1. & 按位与
2. | 按位或
3. ^ 按位异或
4.按位取反运算符
顾名思义,将原来条件结果的值取反
比如 :
int a = 10;
a的补码为 00000000 00000000 0000000 00001010
~a它的补码为:
11111111 11111111 11111111 11110101
反码: 11111111 11111111 11111111 11110100
原码: 10000000 00000000 00000000 00001011
结果为 -11;
5.左移运算符和右移运算符
1.右移运算符 :>>;
无符号数据低位丢弃,高位补0
有符号数据低位丢弃,高位补符号位;
2.左移运算符 : <<;
右边补0;左边丢弃
6.三目运算符
条件表达式 ?表达式1 :表达式2;
条件表达式成立,则执行表达式1;否则表达式2;
算数运算 > 关系运算 > 逻辑运算 > 赋值运算
如不确定,加个()即可;