C語言的輸出結果與書上寫的不一樣

2022-11-29 21:21:16 字數 1228 閱讀 4539

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...