您的位置:首页 > 编程语言 > C语言/C++

c语言的操作符以及要注意的事项

2018-04-03 23:00 162 查看
首先对于操作符如图所示,
                   c语言运算符优先级表(与上至下,优先级依次递减)



优先级:
优先级最高者其实不是真正意义上的运算符,包括:数组下标、函数调用、操作符各成员选择操作符。他们都是自左向右结合,因此a.b.c的含义是(a.b).c,而不是a.(b.c)。
单目运算符的优先级仅次于前诉运算符。类型转换也是单目运算符。
优先级比单目运算符低的就是双目运算符。在双目运算符中,算术运算符的优先级最高,移位运算符次之,关系运算符再次之,接着是逻辑运算符,赋值运算符,最后是条件运算符(三目运算符)。
我们需要注意的最重要的两点是:
1.任何一个逻辑运算符的优先级低于任何一个关系运算符
2.移位运算符的优先级比算术运算符要低,但是比关系运算符要高
在所有的运算符中,逗号运算符的优先级最低。
操作符的用法:
单目操作符:
!       逻辑反操作
-         负值
+        正值
&       取地址
sizeof     操作符的类型长度(以字节为单位)     //用法可看上一篇博客
~       对一个数的二进制按位取反
--      前置、后置--
++    前置、后置++
*       间接访问操作符(解引用操作符)
(类型)       强制类型转换
算术操作符:(+    -     *    /     %)
1.除了%操作符(只适用于整数)之外,其他几个操作符可以用作与整数与浮点数
2.对于/操作符如果两个操作数都为整数,执行整数除法,而只要有浮点数执行的就是浮点数除法
3.%操作符的两个操作数必须为整数。返回的是整除之后的余数
移位操作符:(<<      >>
4000

<<(左移操作符)
移位规则:左边抛弃,右边补0
>>(右移操作符)(一般是算术移位)
移位规则:
右移运算符分两种:
1.逻辑移位
左边用0填充,右边丢弃
2.算术移位
左边用原该值的符号位填充,右边丢弃
警告!:
对于移位运算符,不要移动负数位,这个是标准未定义的
位操作符(&    |     ^)
&      //按位与     (同为1才是1)
|       //按位或      (有一个1就是1)
^    //按位异或    (相同为0不同为1)
注:他们的操作必须为整数
关系操作符:(>    >=    <    <=   !=    ==)
警告:在编程中==与=容易不小心写错
逻辑操作符:
&&        逻辑与
||            逻辑或
条件操作符:
exp1 ? exp2 : exp3
用法:
用条件操作符求最大值#include<stdio.h>
int main()
{
int a = 13;
int b = 10;
int max = a > b ? a : b;
printf("%d", max);
return 0;
}逗号表达式:
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果
用法:#include<stdio.h>
int mian()
{
int a = 1;
int b = 2;
int c = (a > b, a = b + 10, a, b = a + 1);//逗号表达式(c为13)
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: