八路军mp4下载:C语言的朋友们请进

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 05:57:09
运行这样一段代码:
a=3;b=5;c=(++a)*b//c=20,a=4
a=3;b=5;c=(a++)*b//c=15,a=4
哪位朋友能为我解释一下:为什么第二个c是15,我被括号给搞糊涂了

第一行:(++a)在执行“c=(++a)*b”之前a+1。则a=4,b=5,c=20

等同于a=3;b=5;c=(a)*b;a=1+a;

第二行 (a++)在执行“c=(a++)*b”之后a+1。则a=3,b=5,c=15

等同于a=3;b=5;a=a+1;c=(a)*b

括号在这里的作用不大,因为“++”的优先级比“*”高。

++a是先自加 后赋值
a++是先赋值 后自加

第一个是先给a加1,后再使用。第二个是先用a,然后再给a加1,即a的值仍然是3。

a=3时,++a=4 a++=3;