[問題] 遞增減運算子

看板C_and_CPP (C/C++)作者 (堅持需要練習)時間15年前 (2010/09/02 15:25), 編輯推噓1(1017)
留言18則, 8人參與, 最新討論串1/3 (看更多)
( *[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"。 system("pause"); } 改為 printf("--k = %d\n\n",--k); //結果螢幕顯示為"9" 改為 printf("++k = %d\n\n",++k); //結果螢幕顯示為"11" printf("--k = %d\n\n",--k); //結果螢幕顯示為"10" 改為 printf("k++ = %d\n\n",k++); //結果螢幕顯示為"10" (依照課本的說法應該是"11") 改為 printf("++k = %d\n\n",++k); //結果螢幕顯示為"11" printf("k++ = %d\n\n",k++); //結果螢幕顯示為"11" printf("--k = %d\n\n",--k); //結果螢幕顯示為"11" (按照前面的試驗結果, 應該是"10"才對阿? 謝謝各位前輩的指教及糾正 (使用Dev-C++) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.209.30

09/02 15:29, , 1F
你知不知道前置和後置的分別在哪?
09/02 15:29, 1F

09/02 15:32, , 2F
是啥咪課本阿? 把他列入黑名單 XDD
09/02 15:32, 2F

09/02 15:36, , 3F
運算子那章再看清楚一下
09/02 15:36, 3F

09/02 15:42, , 4F
我猜書不是說輸出 11, 而是那之後的 k 的值是11
09/02 15:42, 4F

09/02 15:43, , 5F
課本上寫 K++與++k都是K=K+1之縮寫敘述句
09/02 15:43, 5F

09/02 15:44, , 6F
(還好我有兩本書)
09/02 15:44, 6F

09/02 15:45, , 7F
那書上有說它們之間的差異嗎?
09/02 15:45, 7F

09/02 15:46, , 8F
這不是課本上的,是課本上的比較複雜一點所以我先從
09/02 15:46, 8F

09/02 15:46, , 9F
的開始試驗看看
09/02 15:46, 9F

09/02 15:48, , 10F
課本只說結合性從右-->左,看不出前置後置有何差別
09/02 15:48, 10F

09/02 16:07, , 11F
前置 先加再返回值 後置 先返回值再加
09/02 16:07, 11F

09/02 16:10, , 12F
樓上不對喔, 都是先加只是返回值不一樣, return 就不
09/02 16:10, 12F

09/02 16:10, , 13F
能再加了
09/02 16:10, 13F

09/02 16:12, , 14F
課本只說結合性從右-->左? 我不太懂這句
09/02 16:12, 14F

09/02 16:17, , 15F
意思是 n+++k 和 n+(++k) 不一樣
09/02 16:17, 15F

09/02 16:21, , 16F
(應該是從右邊往左推的意思吧?)
09/02 16:21, 16F

09/02 16:34, , 17F
這是優先權的問題, 不是結合方向
09/02 16:34, 17F

09/02 16:44, , 18F
課本虎你。
09/02 16:44, 18F
文章代碼(AID): #1CVr5eYV (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1CVr5eYV (C_and_CPP)