a+=a-=a*=a,求a的值为多少

设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是________。

A. 3 B. 0 C. 9 D. -12

(1)分析:结果为0,要从后往前算,先运算a*=a,变形为a=axa=9,这时候a被赋值为9,这时候在计算时,a就为9,a-=a相当于a=9-9=0,即最后结果为0。
(2)这里要与a += a-=a*a区别开来,axa没有赋值,所以再次计算的时候a为3,a-=9 ,a=-6,这里赋值了,a+=a相当于a=-6-6=-12.
代码运行结果如下

#include <stdio.h>

int main(int argc,char *argv[])
{
	int a=3,b=3;
	a+=a-=a*=a;
	b+=b-=b*b;
	printf("a=%d b=%d\n",a,b);
	return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值