少先队员的宣誓词:简单的c语言计算,达人请教

来源:百度文库 编辑:高考问答 时间:2024/04/29 06:10:36
int a=16;
a+=a*=a%=3;
过程不懂,请高人赐教,用括号的形式表达,能让小弟看懂步骤就行,目前在自学c语言,谢谢达人
a=16, a=a%3, 那么a=1;
a=1,a=a*a,这里是理解成为a=16*1还是理解成为a=1*1呢?

+=、*=、%=3、与=的优先级相同,结合性是从右至左,因此a+=a*=a%=3;相当于

{
a=a%3;
a=a*a;
a=a+a;
}

应该是这样
a+=(a*=(a%=3))
从右向左计算

个人认为象这种问题以后可以尽量少的去考虑,因为这纯属是人为制造的为了考倒人设计出来的题目,想一想,那个程序员会在程序中使用这样的语句!

DCKJ1234,说的很对,就是这个意思。