C语言操作符优先级

31 篇文章 2 订阅

在这里插入图片描述
在平时写代码时,经常会用到操作符,但是如果不了解这些操作符的优先级,可能会让程序的执行效果和我们预期的不一样。
例如:

	int a = 2;
	int b = 3;
	int c = 4;
	//int ret = a + b * c;//我们想要执行的顺序是a+b的值再乘c
	
	//如果了解操作符优先级,即可避免
	int ret  =(a + b) * c;
	

C语言中的操作符优先级是指在一个表达式中,哪些操作符会被先执行。
下面是整理的C语言操作符的优先级表格,按照从高到低的顺序排列:

优先级运算符作用
1()圆括号用于改变运算符的优先级,括号中的表达式先被求值
2[] 方括号用于访问数组中的元素,也可以用于指针变量的偏移量
3->结构体指针访问运算符,用于访问结构体指针所指向的结构体中的成员
4++ --自增、自减运算符,用于将变量的值加一或减一
5! ~ - +逻辑非、按位取反、负号、正号等运算符
6* / % 乘、除、取模
7+ - 加、减
8<< >>左移、右移
9< <= > >=小于、小于等于、大于、大于等于
10 == !=等于、不等于
11 & 按位与
12^按位异或
13||按位或
14&&逻辑与
15|逻辑或
16?:三元运算符
17=赋值运算符
18+= -= *= /= %= &= ^= = <<= >>=复合赋值运算符
19,逗号运算符,用于连接多个表达式

tips
如果是同级的操作符,执行顺序从左至右
如果不确定优先级,可以使用括号来明确运算的优先级

C语言中还有一些特殊的运算符,如:

  • sizeof运算符:用于计算数据类型或变量的大小,没有优先级;
  • &运算符:取地址运算符,用于获取变量的地址,优先级较低;
  • *运算符:间接访问运算符,用于访问指针所指向的内存地址中存储的值,优先级较低;
  • ->*运算符:结构体指针成员访问运算符,优先级较低;
  • .运算符:结构体成员访问运算符,优先级较低。

这些操作符的优先级相对较低,使用频率也比较低,但也需要了解。

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加法器+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值