1樓:匿名使用者
x=10;
printf("%d",x);
輸出10,這個沒什麼問題
printf("%d",x++);
還是輸出10。執行順序為printf("%d",x);x+=1;所以還是10
printf("%d",++x);
輸出12。執行順序是x+=1;printf("%d",x);因為上一句結束後x=11,所以現在是12
printf("%d\n",x);
輸出12,也沒什麼說的了。
2樓:桔子香腸
你對++運算子沒有弄懂啊,++使x本身的值發生了變化++在變數後面,先用變數,再做自增:
printf("%d",x++);相當於
printf("%d",x);x=x+1;
++在變數前面,先做自增,再用變數:
printf("%d",++x);相當於
x=x+1;printf("%d",x);
--------------------------------------------
x=10;
printf("%d",x);//輸出x=10printf("%d",x++);//輸出x=10printf("%d",++x);//輸出x=12printf("%d\n",x); //輸出x=12
3樓:菠菜冰冰
應該是10101212
第1條:x=10 ==>輸出10
第2條:x=10 x++ ==>輸出10,然後 x++ ,x=11第3條:x=11 ++1 ==> x=x+1 x=12 輸出12最後一條:
printf("%d\n",x); x=12=>輸出12和回車符
++x先計算x=x+1,然後把x當作引數給printf列印x++把x當作引數給printf列印,然後計算x=x+1書那個錯了呵呵
4樓:匿名使用者
x=10; -----------------10賦給變數xprintf("%d",x); -------輸出x的值10printf("%d",x++); -----輸出x的值10,x=x+1,x=11;
printf("%d",++x); -----x=x+1,x=12 輸出x的值12;
printf("%d\n",x); -----輸出x的值12,換行;
5樓:匿名使用者
書本也會有錯誤的,你得到的結果是正確的。
新手學習C語言,關於輸出結果的問題
直接輸出1和2,沒有什麼意義,就和普通的列印字串一樣,直接列印的12被認為列印字串而已,但是輸出一個變數十進位制數12,它是一個變數,可以隨程式的操作,改變輸出的資料,假如輸出的一個數是隨使用者的輸入而改變的話,那直接列印12就體現不出來了,即使要體現出來也很麻煩,要分不同條件去輸出常量字串。個人理...
為什麼這兩個C語言程式輸出結果不一樣呢,能仔細講解一下嗎
第一個是嚴格按照輸出語句從頭到尾輸出的 第二個在呼叫printf函式時,其引數是從右至左進行處理的,即先處理 i 一直到 i,再從左至右輸出。你給的輸出結果是不是寫反了!主要是因為printf 函式是自右往左輸出引數的!printf d n d n d n d n d n d n i,i,i i i...
求C語言讀程式寫輸出結果還要有計算過程拜託各位大神了
3 元素4的地 襲址 元素1的地址 2,3,7 函式呼叫是傳值,7是返回值,2 3是主調函式中的原值 21ff0c 3就是 了12位元組,因為一個int變數佔4位元組。在16位平臺下應該是21ff06 3,4,1 理由同2 0 1 2 0 1 2 0 1 2 是取餘數 1 4 第一次5 4輸出1 x...