老師1-7-3的例子a=5輸出時不應該直接輸出么,為什么會聯(lián)系到++
![]() ![]() 學習達人
|
T549539ov
展開
|
![]() |
WXcrz5istx1
展開
|
![]() ![]() 學習達人
|
caojiemxd
展開
#include<stdio.h>
main(){
int a;
a=5;
a++;
printf("%d\n",a);
} 這個a是6打印出來,如果把a++換成a=a++那么a打印出來就是5了這個是為什么呢 |
![]() ![]() 學習達人
|
茶茶丸喵
展開
|
![]() ![]() 學習達人
|
茶茶丸喵
展開
int a;a=0;printf("%d%d/n",a++,++a);為什么結果是12/n[痛苦] ![]() hdylnpu
講師
展開
@ 茶茶丸喵 這組語句歧義的核心在于printf有的系統(tǒng)是從左向右執(zhí)行,有的系統(tǒng)是從右向左執(zhí)行。 ![]() hdylnpu
講師
展開
@ 茶茶丸喵 你好,兩點
一是同樣的代碼,在c-free5中輸出為11。在devc++中輸出為12。這兩個都是特別優(yōu)秀的c編譯軟件。
二是你把\n寫為了/n。
實質上++ --包括+= -=等運算符的出現(xiàn)的實質是為了簡化表達式的書寫。絕對不是為了增強學習的難度。在實用中,通常不會出現(xiàn)在輸出語句中。
而不同的編譯程序對輸出語句中的++ --的解釋與執(zhí)行也不是完全相同的。
所以如果您的問題是為什么輸出12,我無法解釋,并且通常也不用于輸出語句中。如果問題是/n,那是你把斜杠用返了。
以上,期望對你有所幫助。 |
![]() ![]() 打卡Lv2
|
歐茶渠晶
展開
int a;a = 6;
printf("%d\n", ++a + a++ + ++a);
printf("%d\n", a);
第一個7+7+9=23 為什么打印出來是24
第二個是9 |
承擔因您的行為而導致的法律責任,
本站有權保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。