C语言中m+=i++表示什么意思

如题所述

m+=i++ 这是赋值运算符与自增运算符的综合使用,该表达式等价于如下2条表达式:

m = m + i;
i++;

如果表达式换成m+=++i,则改表达式等价于:

i++;   
m = m + i;
// 因为是++i,所以i的值需要先进行加1,之后再参与表达式的运算;而i++是先将i的值代入表达式计算,表达式计算完后,i的值再加1

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-12
a+=b 表示 a=a+b;而这里面b是i++,这就看着貌似有点麻烦,其实很简单
首先++表示自增 即i++等价于i=i+1;
但是有顺序的,即 i++是先用i,然后再++;++i是先++在用i;
比如你这个例子:m+=i++; 就是先用i,然后在i++
这样一来,就相当于两个语句: m+=i;(或者写成m=m+i)
i++;(或者写成i=i+1,这里只有一个i++,就无所谓++在前或是在后了)本回答被网友采纳
第2个回答  2011-01-15
i++表示先引用i的值,再使i的值加1,i++当成右值看待(i++=3,这个错误)。j++同理
++表示先使i的值加,再引用i的值,++i当成左值看待(++i=3,这个正确)。++j同理
第3个回答  2011-01-15
i++表示i自增,即i=i+1;
j++=2 有两个运算符++ 和= 这两个运算符都是右结合的,所以先赋值j=2 然后j++ j的值变为3
第4个回答  2011-10-12
举个例子吧,假设i=2,m=3,则m+=i++是先进行i++,再进行m=m+(i++),此时i=3,m=5.
相似回答