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

函数调用的一个有关问题

2012-02-25 
函数调用的一个问题对于函数调用的疑惑如:bits[idest--]num[isrc--]这里面是先运行bits[idest]num[isrc

函数调用的一个问题
对于函数调用的疑惑    
 
 
如:bits[idest--]=num[isrc--];                
 
这里面是先运行     bits[idest]=num[isrc]     之后在运行     idest和isrc自减,还是先自减     在赋值,     如果     变成bits[++idest]==num[++isrc]     又如何呢,

[解决办法]
先运行 bits[idest]=num[isrc] 之后在运行 idest和isrc自减
bits[++idest]==num[++isrc] 是先自加,然后在运行bits[idest]=num[isrc]
[解决办法]
如果idest和isrc是内置类型,标准并没有规定先赋值还是先自减。
如果是类类型,先自减。
[解决办法]
bits[idest--]=num[isrc--];


首先...根据编译器的运行方式...小弟的猜测是先运行等号右边的表达式num[isrc--],显然在这个表达式中是先对isrc求值然后再进行num[isrc]的求值...最后才进行isrc--操作...

算完了等号右边的,然后就是等号左边的表达式bits[idest--]按上面的说法.先是求idest的值, 然后是bits[idest],最后才是idest--...

总结一下这个表达式的最后编译形式或能与下更语句同义,以下用C++伪码表示:

_temp=num[isrc];
isrc=isrc-1;
bits[idest]=_temp;
idest=idest-1;

不是之处,请各指出...
[解决办法]
也就前一个后一个的问题

热点排行