读书人

今天发现一个有关问题想不通啊

发布时间: 2012-03-21 13:33:15 作者: rapoo

今天发现一个问题,想不通啊???
今天在VC++ 6.0下输入以下代码:

int iVal = 0;

if( (iVal += 3) > 4 )
{
/* 执行代码*/
}


当if语句执行完后,iVal的值为6,这是为什么啊,想不通???

[解决办法]

探讨

if执行了两次,
第一次 iVal=3 iVal < 4为真 执行代码

第二次 iVal=6 iVal < 4为假,退出if

另if( (iVal += 3) > 4 ) 应该是 if( (iVal += 3) < 4 )

[解决办法]
VC++ 6.0其实有很多bug比如说:
for(int i = 0; i< 2; i++);
其中i在执行完for循环之后并不会消失,如果你接着写
for(int i = 0; i< 2; i++);
就会出redefinitation的错误。
可能是相关的原因,因为你的源码不详细。所以很难说。

读书人网 >VC/MFC

热点推荐