以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  请教一个赋值操作符问题[求助]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=62642)


--  作者:76513499
--  发布时间:5/15/2008 1:01:00 PM

--  请教一个赋值操作符问题[求助]
a = 1; c = ( a++ ) + ( a++ );执行后,c的值为2,而a的值为3

我的理解:c=(a=a+1)+(a=a+1)   c=3+3 c=6.

请教大虾们第1行的字符串应该怎么理解```


--  作者:yyg507
--  发布时间:5/19/2008 8:15:00 PM

--  
a++是在完成赋值后才对a+1

--  作者:BirdOnSky
--  发布时间:5/24/2008 8:05:00 AM

--  
以下是引用76513499在2008-5-15 13:01:00的发言:
a = 1; c = ( a++ ) + ( a++ );执行后,c的值为2,而a的值为3

我的理解:c=(a=a+1)+(a=a+1)   c=3+3 c=6.

请教大虾们第1行的字符串应该怎么理解```


if   "c= a + a ",  then, c will be  = 1+1   = 2;

Here, "c= (a++) + (a++)",  only  one "++" will have effect on c;  so,  c=2+1=3


--  作者:maixl
--  发布时间:6/12/2008 1:16:00 AM

--  
a++ 是 先赋值在加1
++a 是 先加1在赋值
c= (a++) + (a++) 应该这么理解

c=a+a;
a=a+1;
a=a+1;

所以c=2 a=3;

如果c=(++a)+(++a)
相当与 c=(a+1)+(a+1)
c=2+3=5 a=3


--  作者:netjian
--  发布时间:6/12/2008 12:43:00 PM

--  
以下是引用maixl在2008-6-12 1:16:00的发言:
a++ 是 先赋值在加1
++a 是 先加1在赋值
c= (a++) + (a++) 应该这么理解

c=a+a;
a=a+1;
a=a+1;

所以c=2 a=3;

如果c=(++a)+(++a)
相当与 c=(a+1)+(a+1)
c=2+3=5 a=3


对于c=(a++) + (a++)的情况你的说法是对的。
但是对于c = (++a) + (++a),你的说法是错的。


对于c = (++a) + (++a),相当于以下过程:

a = a+1;
a = a+1;
c = a + a;

此时的结果c应该是6,而不是5.


--  作者:maixl
--  发布时间:6/14/2008 9:45:00 AM

--  
netjian一眼就看出问题,呵呵
谢谢指出,我的意思也是
对于c = (++a) + (++a),相当于以下过程:
a = a+1;
a = a+1;
c = a + a;
不过错认为在第二次++后第一个a还是2,呵呵 思维一下转不过来
--  作者:zhxuhi
--  发布时间:7/5/2008 2:58:00 PM

--  
结果是2.
我的理解:c=1+1;a=3.
--  作者:zhxuhi
--  发布时间:7/5/2008 2:59:00 PM

--  
结果是2.
我的理解:c=1+1;a=3.
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms