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;
}
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;
}
相关文章推荐
- 【Xcode学C-1】如何用Xcode练习C语言,并练习一个输出例子,以及重要的注意事项
- 7_21|C语言|操作符注意事项|sizeof使用讲解|结构体简单介绍
- C语言注意事项——数据类型、操作符和表达式
- 让人迷茫的符号——C语言符号奇怪的用法以及注意事项
- 【Xcode学C-1】怎样用Xcode练习C语言,并练习一个输出样例,以及重要的注意事项
- C语言-Switch 和case 的使用注意事项以及穿透效果的使用
- C语言中字符串系列函数的实现以及注意事项
- C语言中字符串系列的函数实现以及注意事项
- UI-数据库的“删”“添”“改”“查”方法,以及需要注意的事项........
- C语言简单的多文件编程【注意事项/易错点】 文章仍在编辑中
- C++ Container 以及 STL 相关的常用操作 和 注意事项
- MySQL索引类型总结和使用技巧以及注意事项
- innerText,innerHTML的用法以及注意事项
- 微软CRM系统二次开发步骤以及注意事项
- CDateTimeCtrl 重载中的注意事项,以及边框的修改。
- MySQL学习(一)MySQLWorkbench(MySQL可视化工具)下载,安装,测试连接,以及注意事项
- SQL编程之高级查询(子查询)以及注意事项
- SQL编程之高级查询(子查询)以及注意事项
- innerText,innerHTML,outerHTML的用法以及注意事项
- Android NDK开发使用以及so文件生成和注意事项