a_pos = a++; //后綴,使用a的值之后,遞增a
b_pre = ++b; //前綴,使用b的值之前,遞增b
a--和--b同理,不必贅述,這是幾乎每個學習過C語言的同學都會知道的,而我在幫助一位“偷懶”的同學解答時,遇到了如下問題,

這位同學將書上本該分開寫的printf陳述句連在了一起寫,出現了這樣的問題,讓我一時難以解答,
直覺告訴我有可能是printf陳述句的問題,于是我在網上搜了printf陳述句的詳解:https://www.cnblogs.com/Ahair/p/5017050.html
身為菜雞的我看完以后并沒有解答我心中的疑惑,于是繼續百度,終于讓我在百度百科里找到了這句話讓我有些明白了,

身為菜雞的我本著打破沙鍋問到底的精神更深入的去搜索,得到了這篇博客對于printf為何是從右到左壓堆疊的解答:https://blog.csdn.net/jiange_zh/article/details/47381597
這樣一來i++的輸出結果反過來的問題似乎得到了解答,可是為啥++i的結果是一排12又讓人陷入了困惑,
身為懶癌的我放棄了掙扎,詢問了蟲子師傅和黃兄,得到了如下解答,深感大佬的牛逼,
C語言在處理前置和后置時的方式不同:
在處理后置時:是將值放入臨時量中,在輸出時直接從臨時量中取值
在處理前置時:是等運算完成后,直接從I的地址中取值

至此,解答完畢,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/63323.html
標籤:C
下一篇:第一周、學習嵌入式
