C语言中的复合赋值运算符“%=”怎么用?

a+=b%=a+b这个表达式的值是多少?

要点1: *=,+=,-=,%= 等符号的应用是同道理的: 即把左边的移过右边运算(右边用括号包住,表示先运算),结果再给左边(注意左边只能是变量,不可为表达式)A += B 等价于A = A + (B); (B可以是值或表达式,这里的=仍是赋值号哦,B打括号是因为它可以是表达式) 如 x += 1; ===== x= x+1; x += 1+2+3; ===== x =x+(1+2+3); x += a+b+1 ==== x= x+(a+b+1); 要点2:就个这样的符号的运算,则从最右边的那个开始计算,一直到左边例如: A += B %= A -= B--------------3------2----1 (3个这样的符号)从*最右边*来分析(按符号顺序): 1: A=A-(B) ,得到了A的新值 2:B = B%(A), 得到了B的新值 (注意该A是新值哦) 3: A=A+(B), 再次得到了A的新值 (注意右边的A也是1的新值,B是2的新值) 懂了上面,你应该可以分析自己的了~~~
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-10
%=的用法是,把%移到右边。比如a %= b;那就把a和%移到右边,但左边还有一个a。最后等于a = a % b;像楼主说的a+=b%=a+b;因为赋值语句是从右到左计算的,所以先要计算最左边的a+b;也就是成这样:a+=b%=(a+b),根据上面说的,%=用法,现在把b和%移到右边,那就成a += b = b %(a+b);其实计算出b %(a+b);的值,然后赋值给b,最后是a +=b,然后把a和+移过右边,成a = a + b;

C语言中的复合赋值运算符“%=”怎么用?
要点1: *=,+=,-=,%= 等符号的应用是同道理的: 即把左边的移过右边运算(右边用括号包住,表示先运算),结果再给左边(注意左边只能是变量,不可为表达式)A += B 等价于A = A + (B); (B可以是值或表达式,这里的=仍是赋值号哦,B打括号是因为它可以是表达式) 如 x += 1; =...

C语言中求模并赋值符号:%= 是怎么运算的
是2目运算符。它 计算 整数除以整数得到的余数。(所谓的模运算)。例如:int x=9;x%=5;它执行: x = x % 5;x 当前值是 9, x % 5 就是 9 % 5 得 余数 4, 把 4 赋给 x x 更新为 4。程序:include<stdio.h> int main(){ int x=9;x%=5;printf("x=%d\\n",x)...

c语言中,表达式a+=a%=a%3这个怎么算请给我步骤
+=,%=都为复合运算符。先算a%3,a%3的意思是a对3取余,得到一个结果。a%3=a%3的意思是a=a对(a%3)的结果取余,得到一个结果并赋值给a。a+=a%=a%3的意思是a=a+(a%3=a%3)的结果,就得到了a 的值。注意:在这个过程中a 值得变化。

...%=,+=,-=,*=,\/=,<<,>>,if(!a)都代表什么?怎么用?
=,+=,-=,*=,\/=是复合赋值运算符,用法:a%=b就是a=a%b,a+=b就是a=a+b,a-=b就是a=a-b,a\/=b就是a=a\/b。这个规律你也发现了吧,就是a+=b当成a+b后,放到a里面。类似的,a*=b就是a=a*b。<<和>>都是 位运算符 ,如果有一个数a=255,要把它转换成 二进制形式 即...

c语言中“%=”是什么意思?
c 自增之前的值)即为该表达式的值。逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。以上内容参考:百度百科-C语言运算符 ...

复合赋值运算符讲解
%= 取模赋值 -= 逻辑非赋值 <<= 左移位赋值 复合运算的一般形式为: 变量 复合赋值运算符 表达式 其含义就是变量与表达式先进行运算符所要求的运算,再把运算结果赋值给参与运算的变量。其实这是C语言中一种简化程序的一种方法,凡是二目运算都可以用复合赋值运算符去简化表达。例如: a+=56等价于a=a+56 y\/...

C语言运算符%是怎么运算的
C语言中%的作用:%作为运算符是用来取余的 运算符(operator)是可以对数据进行相应操作的符号。如对数据求和操作,用加法运算符 '+',求积操作使用乘法运算符 '*' ,求余数用运算符'%'。等等 例如 :一、25%4=1 ;25除以4商6余数是1 二、33%5=3 ;33除以5商6余数是3 ...

C语言中%=是什么意思
1、%是求余符号 经常会用到判断一个数是不是能被另一个整除。如:7%3=1(7除以3 余下1,) 1%3=1(1除以3除不尽 余下1);如判断一个m是奇数还是偶数 if(m%2==0) printf("偶数")。2、引导符,用于引导输入输出项表列的格式。例如:printf("%d%c%f",a,b,c);意思就是a...

c语言的复合赋值符。。。 <<= >>= &= ^= |= 分别有什么用啊??拜托了...
在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如 :+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式 它等效于 变量=变量 运算符 表达式 a<<=n(整数):将变量a的值的二进制形式先左移n位(等效于将a二进制值乘以2的n次方...

c语言中有关12%=(5%3)的怎么计算?
表达式12%=(5%3)有语法错误,因为%=是复合赋值运算符,赋值运算符要求其左边的操作数为变量。而该表达式为常数12,不符合C语言语法要求。按如下改造:int a = 12;a %= (5%3); 等价于:a = a % (5%3);5 % 3余数为2,a%2余数为0,因此,最终a = 0 ...

相似回答