C语言问题:a/=a=a为什么等于0啊?(原来a等于12)

来源:百度知道 编辑:UC知道 时间:2024/06/14 04:08:24
搞错咯,是a/=a+a为什么等于0?
为什么a+a得24后24不赋值给等号前面的a呢?

a/=a+a
等价于a=a/(a+a)
如果原来a=12
则a=12/24
等于0
就是这样的
凡是出现a+=i
a-=i
a*=i
a/=i
a%=i
都要加括号的
即a=(a%i)

+号的运算符优先级比/=高,所以程序 先计算a+a
式子为a/=24,12除以24整数为0,所以答案为0,如果式子换成a=a%24,那么结果是12
/表示结果取整数部分,%表示结果取余数部分

我感觉是等于1.
/= 和= 都是赋值运算符,其结合方向是自右至左的,故应该为:a/=(a=a),先算a=a 结果为12(a没变为12),再算a/=12即a=a/12也就是等于1

是a/=a+a的话,同意yujunliang316的答案

答案应该是 1 ; 你弄错拉

式子从右向左运算等价为以下两个语句 先 a = a; a为12,然后
a /= a ;

你打错了吧,应该是+号吧! +号的运算符优先级比/=高,所以程序 先计算a+a
式子为a/=24,12除以24整数为0,所以答案为0