表达式是使用运算符连接起来的式子,C语言中的表达式有以下几种:
1、算数运算符 + - * / %
2、赋值运算符 += -= *= /= %=
3、自增、自减 ++ --
a++为先使用a,然后在进行a=a+1的运算,而++a为先a=a+1,然后再使用a,这个时候a的值已经不是原来的a了,而是a+1。
int a=1;(a++)*(a++)*(a++)*(a++)的结果是24,在进行完上式之后a的值是5.
4、关系运算符(比较运算符) < > >= <= == != 关系运算结果为真(1)或假(0),即成立或不成立,对或者错,开或关
计算机返回表达式成立与否很标准:1(真);0(假)
5、逻辑运算符 && || ! 表达式1 逻辑运算符 表达式2.
&& 表达式1和表达式2同时成立,即同时为1时返回值为1,否则返回0,也就是假。
|| 表达式1和表达式2中有一个成立,则返回值为真,返回1,否则返回0,即假。
! !表达式1 如果表达式成立则返回假也就是0,如果不成立则返回真即1.
!的优先级比较高,仅此于()。
6、位运算符 & | >> <<
a<<n相当于给一个变量乘2的n次方,a>>m 相当于a除以2的n次方。
7、三目运算符 表达式1?表达式2:表达式3 c=a>b?a:b意思是如果a>b,那么c=a,否则c=b。相当于if判断。
8、sizeof(表达式)用来获取表达式结果的类型在内存中存储所占用的字节数,sizeof()的结果是unsigned long ,在使用printf打印时占位符是%lu。
不同的运算符有不同的优先级(后面的数字表示优先级,数字越小,优先级越高):
() 0 最高
! 1
+ - * / % 2
> < >= <= == != 3
&& 4
|| 5
+= -= *= /= %= 6
= 7 最低
如果不知道优先级的等级,就使用括号括起来,这样不但可以保证运算结果正确,也可以使逻辑关系清楚易读。
以下是上面知识的一些使用:
奇数的表示:int a=0; a%2==1
偶数的表示: int b=0; b%2==0
a/b的结果是a/b的商,a%b的结果为a/b的余数。
两位数的十位数和各位数的表示:int a=23;b=a/10表示a的十位数的数字。c=a%10表示a的各位数。
短路:在一个逻辑表达式中,如果存在||运算,且||运算符前面的逻辑结果为1,则整个逻辑表达式的结果肯定是1,这个称为短路;
断路:在一个逻辑表达式中,如果存在&&运算,且&&运算符前面的逻辑结果为0,则整个逻辑表达式的结果必然为0,这个称为断路;