作者Cidolfas ()
看板C_and_CPP
標題Re: [問題] 遞增減運算子
時間Thu Sep 2 16:08:08 2010
※ 引述《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