C语言知识点(2)------优先级

首先

了解单目运算符和双目运算符的区别就是操作数(变量或常量)数量的不同。

单目运算符只对一个操作数进行逻辑运算。

例如: num++(自加) , num--(自减) , !num(取反) , ~num(按位取反)。

双目运算符只对两个操作数进行逻辑运算。

例如: num1 + num2 , num1 - num2 , num1 > num2

 

PS:除了单目和双目运算符,还有一个三目运算符:

三目运算符就是对三个操作数进行逻辑运算。目前三目运算符只有一个:num = num > 4 ? 1 : 0。这段程序的意思是:如果变量num的值,大于3,那么变量num1的值就变为1,否则num的值就变为0

假设定义两个常数FLAG和flag在if语句的判断内表示如下:

If(FLAG & flag == 1)

原本想表达的意思是(FLAG & flag)的结果是否等于1,但是由于 == 的优先级比 &的高,所以意思就会变成 FLAG与(flag == 1)的逻辑与运算,在编程中虽然不会直接报错,但是会直接影响最后的运算。

其实这些优先级没有那么难记,只要恰当分组,了解每组之间的相对优先级就可以了。

  1. 优先级最高:数组下标、函数调用、操作符和结果成员选择符(自左向右);例:a.b.c表示(a.b).c。
  2. 单目运算符:因为函数调用的优先级要高于单目运算符的优先级。如果p是函数指针,必须要写:(*p)();

如果*p();的话,就是指针函数了。

  1. 双目运算符:在双目运算符中,算术运算符优先级最高,移位其次,后面依次是关系运算符、逻辑运算符、赋值运算符、最后条件运算符(三目运算符)。

有两个点最重要:

  1. 任何一个逻辑运算符的优先级都低于任何一个关系运算符。
  2. 移位优先级比算术高,比关系运算符低。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值