我对于运算符的一点点总结

来源:互联网 发布:淘宝网粉红大布娃娃 编辑:程序博客网 时间:2024/05/20 18:15

一.运算符丰富的分类


算术运算符:(+ - * / % ++ --)

关系运算符:(< <= == > >= !=)

逻辑运算符:(! && ||)

位运算符 :(<< >> ~ | ^ &)

赋值运算符:(= )

条件运算符:(?:)

逗号运算符:(,)

指针运算符(* &)

求字节数:(sizeof)

强制类型转换:(类型)

分量运算符:(. ->)

下标运算符:([])

其它 :(( ) -)

二. 这里主要介绍逻辑运算符和算术运算符

逻辑运算符主要包括(! && ||) 

逻辑运算符用于对包含关系运算符的表达式进行合并或取非, 对于使用逻辑运算符的表达式,返回0表示“假”,返回1表示“真”。

例如a<b && b>c, 只有当两个同时满足时为真,否则为假。但a<b || b>c只需要满足一个就为真。!运算表示如果原本为真,经过此运算后则为假,反之亦然。这不是我要介绍的重点。

例如对于这样一个程序结果是多少?

#include <stdio.h>
int main()
{
int i = 0,a=1,b=2,c =3,d=4;
i = a++||++b||d++;
printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);

return 0;

}

微笑微笑 结果为a=2,b=2,c=3,d=4.这里我们可以看出当有多个||运算时,如果第一个为真,则不再执行以后的运算。

微笑微笑如果把i = a++&&++b&&d++;替换上式中的i,我们会得到什么样的结果,同理分析可知a=2,b=3,c=3,d=5.

位运算符:

    包括:1。&位与符 2。|位或符 3。^位异或符 4。~位取反符

这里给几个例子相信大家就可明白咯

10&5等价于(1010)&(0101)结果为0.结论:同1为,不同为0;

10|5.............(1010) | (0101) 结果为15(1111),有1则为1,无1为0;

10^7 ...........(1010) ^ (0111)结果为13(1101),不同为1,相同为0;

~10..............~(1010) 结果为5(0101), 按位取反

0 0