请求,和室友讨论很久

img

为什么会这样啊,最开始看网上说printf打印时是从右往左,但是今天来看好像也不是这个样子啊

printf就是相当于一个打印机
你给什么打印什么
第一个%d对于的是a++(后置++,所以,先输出a,a再加1),屏幕打印5
然后中间是空格,输出空格
第二个%d对应的是a,此时a已经自加1了,所以是6
最后一个\n换行,所以有2行

img

printf从右向左计算,从左向右打印
a++是先赋值再加一,返回的是a的值
你试下printf("%d %d\n",a,a++);就知道了