全部问题 > 当前问题

第一个printf输出的是30,不应是40吗

9XPWJ46QMN}%H[%%3CA)O45.pngN{1GEIMPSQG1LW}EYGR}DFB.png

飘落的共和国旗 2016-3-6 16:33:10

共 10 个回答

m 2016-3-6 18:00:38

*p=30,角标为2是第三个数

嘿嘿大人 2016-3-6 18:38:03

加号在后代表的是先执行当前语句,然后再执行自加一,所以第一个应该输出的是a【2】的值,也就是30,然后地址p再自加一

飘落的共和国旗 2016-3-7 10:42:15

回复 嘿嘿大人N{1GEIMPSQG1LW}EYGR}DFB.png那不就和这个矛盾了吗

嘿嘿大人 2016-3-7 12:05:43

回复 飘落的共和国旗:没有什么矛盾啊,你觉得什么冲突了?

飘落的共和国旗 2016-3-10 16:44:05

回复 嘿嘿大人:我觉得如果是先算后面的话,那就是先自增再输出。。。。

嘿嘿大人 2016-3-10 16:52:24

回复 飘落的共和国旗:不要你觉得,你要按规定来,规定就是如果++在后,那么在表达式里面就是先执行表达式,然后执行自加

飘落的共和国旗 2016-3-10 17:04:57

回复 嘿嘿大人:哦。不管先算谁都一样?

嘿嘿大人 2016-3-10 17:08:55

回复 飘落的共和国旗:*(p++)分为两步第一步*p,第二步p=p+1

飘落的共和国旗 2016-3-10 17:18:33

回复 嘿嘿大人:哦哦,先输出再加1在任何涉及到p++的情况都一样吗

嘿嘿大人 2016-3-10 17:50:23

回复 飘落的共和国旗:对的,必须要先执行当前语句完毕后再自加

问题来自: 指针和数组