函数调用的一个问题
对于函数调用的疑惑
如: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;
不是之处,请各指出...
[解决办法]
也就前一个后一个的问题