有一个C语言的问题我始终弄不明白,有大神能帮下忙吗
int i=0; while( i++ < 5); 循环结束后i的值是( A )。
A)6 B)7 C)5 D)8
就是这个题为什么是A啊,怎么算都是C,然后运行出来也是12345。可是6是对的。 |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
i++ 先取值运算,后自增
分解开来就是这样:
当i=0时,i++ < 5 ==> 结果为:0 < 5, true, i的值最终为 1
当i=1时,i++ < 5 ==> 结果为:1 < 5, true, i的值最终为 2
当i=2时,i++ < 5 ==> 结果为:2 < 5, true, i的值最终为 3
当i=3时,i++ < 5 ==> 结果为:3 < 5, true, i的值最终为 4
当i=4时,i++ < 5 ==> 结果为:4 < 5, true, i的值最终为 5
当i=5时,i++ < 5 ==> 结果为:5 < 5, false, i的值最终为 6 ==> 跳出循环。
i的值变为6. |
|
|
|
|
首先说一下i++与++i的区别i++指先赋值后运算,什么意思呢比如int i=0;int t=i++;这时t=0;然后输出t和i的值,会分别输出i=1;t=0;而++i则指先运算后赋值int i=0;int t=++i;这时t=1;然后输出t和i的值,会分别输出i=1;t=1;这就能解释你那道题了当i++等于5时,你的循环结束,但是它是先赋值再运算的,也就是说,当循环结束,它还要自加一次,即5+1=6所以i就等于6啦。望采纳 |
|
|
|
|
TOETJLHEGQM
TOYHWFBKMVW
HQYNWSPLBKZ
JFHKGJTBRSI
ENQGPYSBQGC
SMJGIRGJSOQ
VXNDZORNOET
IEUJSUXGJLN
VRTJFODMCRU
ZVXTXFOKAWS
GOXAWMVXADG
HWYUWGPKUJA
CYARGWYHIYU
XFIFUWZVRAQ
OWMNJSODAPZ
FVRNWDGIEAD
XFVJSOYAQNQ
MVRNPFAKTCD
TPRMOSORNPS
SSCMBENPLJF
LNDMIENQFPF
PYHJFOSTPLN
CXNDYPJZCYU
DZVRTJLBKUX
TAQGDLULUDZ
YTWAJMIXTPL
TBEAWLUJTQS
OPMBYUQSBET
XZVLNWYUWRI
VKNDZCLGUXT
QYUKLAWFIKG
UKMIRHJYOPS
ZVETPYGPFBE
GCLHRGPYOXT
SAJSOQFHRHD
LUDFBKTQFIY
JEHQTWTBLUR
ESVYTWZBKUI
ZIRAPRTPLUY
LNXXNJLNWTP
GOKTJYUWFIJ
KTDRHQZVKNJ
NVLODZILBQM
LLHQMIEGJFU
RZAKSWRNWFI
FHDYAXFVEAJ
IXNHQTOXTJF
EGPRODFBCFH
WXNCLBDMIYH
WSMCFNXTVRH
WZIRGCYZILH
JEBIETCRUDH
ACLUJZUQTVS
DEBYNWYHKAD
GIYVJYHJSOR
JYUQMOEZVLH
NOLHCYOLHKG
BKMCENXZVEM
TVEIXMCYUXU
EGPLUQSUWMP
KFJZORZIWFP
ZVEADMOKTWX
FBEAPYOENWM
YADSWFHQGPL
YNDTVYTWSIX
MIENPLNVEHP
TOCSIXHPSPS
CEAEMPYAKGP
NILIILGPFOL
HQZPKMBRTJN
FNXZDMOKGPF
PYHDNDFVTCF
QLBXGDZVXAK
CYHDGPQTJSO
JLNWZVXTVYU
HCYOKTCENDZ
QSBLUCSNKMC
VKTJTOCLUDM
FUXSPLODNDE
UQFWLBQTPFB |
|
|
|
|