看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《bronx0807 (堅持需要練習)》之銘言: : ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) : ( 未必需要依照此格式,文章條理清楚即可 ) : 遇到的問題: (題意請描述清楚) : 試驗了以下,但還是不清楚電腦是怎麼算的 #include <stdio.h> #include <stdlib.h> main() { short int k; printf("輸入一個整數:"); //我輸入"10" scanf("%d",&k); printf("++k = %d\n\n",++k); //結果螢幕顯示為"11"。 // 前置,先做 k = k+1,輸出時是 k = 11 system("pause"); } 改為 printf("--k = %d\n\n",--k); //結果螢幕顯示為"9" // 前置,先做 k = k-1,輸出是 k = 9 改為 printf("++k = %d\n\n",++k); //結果螢幕顯示為"11" //前置,先做 k = k+1,輸出時 k = 11 printf("--k = %d\n\n",--k); //結果螢幕顯示為"10" // 前置,先做 k = k-1,輸出是 k = 10 改為 printf("k++ = %d\n\n",k++); //結果螢幕顯示為"10" // 後置,先輸出 k = 10,再做 k = k + 1 (依照課本的說法應該是"11") // 所以printf結束後 k = 11 改為 printf("++k = %d\n\n",++k); //結果螢幕顯示為"11" // 前置,先做 k = k+1,輸出時是 k = 11 printf("k++ = %d\n\n",k++); //結果螢幕顯示為"11" // 後置,先輸出 k = 11,再做 k = k + 1 // 這個printf結束後 k = 12 printf("--k = %d\n\n",--k); //結果螢幕顯示為"11" // 前置,先做 k = k-1,輸出是 k = 11 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.141.201 ※ 編輯: Cidolfas 來自: 219.85.141.201 (09/02 16:09)
bronx0807:謝謝前輩指點迷津! 原來有這樣的區別。 09/02 16:15
Cidolfas:根據a兄下篇的回答,後置的觀念有錯,請注意 09/02 16:37