C语言程序——复合赋值运算符的应用


前言

除了基本的算术运算符之外,C语言中还提供了特殊的复合赋值运算符,复合赋值运算就是把“运算”和“赋值”两个动作结合起来。


一、什么是复合赋值运算符

赋值符“=”之前加上其他二目运算符可构成复合赋值符,经常使用的复合运算符主要有算术复合运算符和位复合运算符。复合赋值运算符和普通赋值运算符的优先级都是相同的,且都具有右结合性,运算过程相当于变量的值累加上右边表达式的值,存放到该变量中,例如x*=y+3等价于x=x*(y+3)。

二、程序实例

代码如下:

#include <stdio.h>
void main()
{
	int a=10,b,c;
	a+=a-=a*=a;
	printf("a=%d\n",a);
	a=10,b=3;
	printf("exp=%d\n",a-b+++1);
	a=b=c=2;
	a*=b=c;
	printf("a=%d,b=%d,c=%d\n",a,b,c);
	b*=c+=a/=c+2;
	printf("a=%d,b=%d,c=%d\n",a,b,c);
}

运行结果:
复合赋值运算符的应用

结果分析:

  • 对于代码中的语句a+=a-=a*=a;来说,根据赋值运算符的结合性,表达式的实际运算过程是:a=a*a、a=a-a、a=a+a,因此最后计算结果为0.
  • 对于语句a*=b=c;来说运算过程为:b=c、a=a*b。
  • 语句b*=c+=a/=c+2,的计算过程为:a=a/(c+2)、c=c+a、b=b*c。

拓展应用:
应用复合的赋值运算符时经常会出错,在写表达式的过程中,最好利用圆括号把表达式的主要功能括起来,不要让编译器来分析表达式中具体的操作数的值,例如表达式a+b+=c+=3是不合法的表达,应该加上(),正确的表达式是a+(b+=c+=3)。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了C语言中复合赋值运算符的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值