首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-03-21 
今天发现一个问题,想不通啊???今天在VC++ 6.0下输入以下代码:int iVal 0if( (iVal + 3) 4 ){/* 执行

今天发现一个问题,想不通啊???
今天在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的错误。
可能是相关的原因,因为你的源码不详细。所以很难说。

热点排行