表达式的运算规则

文章讨论了运算符的运算规则,包括不同优先级和相同优先级的运算符处理方式,以及单个运算符的计算。通过C语言的例子解释了优先级和结合性如何影响表达式求值,例如`!++i`和`!j++`的运算过程,强调了运算符的结合性(从右到左)在确定计算顺序中的作用。
摘要由CSDN通过智能技术生成

表达式的运算规则要解决三个问题

1,不同优先级的运算符要先算哪个?

2,相同优先级的运算符要先算哪个?

3,单个运算符怎么算?

解决方法

第一个问题好解决,优先级高的先算。

第二个问题也好解决,根据运算符的结合性,如果结合性是从左到右,那么先算左边的运算符,再算右边的运算符,反之亦然。

第三个问题要看运算符的运算对象是几个,如果是三个或两个,从左到右,如果是单个,根据运算符的功能算即可。

举个c语言的例子:

#include<stdio.h>
int main()  {  
	int i=0;
	int j=0;
	printf( "!++i=%d\n" ,!++i);  
	printf( "!j++=%d" ,!j++);  
	return 0;
}

运行结果:

分析过程:

!和++这两个运算符属于同级别,它们的结合性是从右到左。

!++i的运算过程如下:

先算++i,该表达式的值为1,再算!1,结果为0;

!j++ 的运算过程如下:

先算j++,该表达式的值为0,再算!0,结果为1;

参考

C has built-in precedence and associativity of operations that determine how and in what order operations are performed.

Precedence determines which operations have a higher priority and are, therefore, performed before those with a lower priority.

Associativity refers to how operators of the same precedence are evaluated—from left to right or from right to left.

引用自《Learn C Programming》 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值