[問題] C語言簡單習題求解

看板C_and_CPP作者 (Panpeter)時間9年前 (2016/05/21 23:22), 9年前編輯推噓6(6027)
留言33則, 10人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): a++ 的意義是先執行整個敘述後再將a的值加一 (--是減一 ++a 的定義先把a加一後,在執行整個敘述 (同上 那為甚麼第八行的執行結果會是9? 預期的正確結果(Expected Output): a=9 a=9 請按任意鍵繼續.... 程式碼(Code):(請善用置底文網頁, 記得排版) 1 /*hw5_1a,運算式練習(一)*/ 2 #include<stdio.h> 3 #include<stdlib.h> 4 int main(void) 5 { 6 int a = 8; 7 printf("a=%d\n", ++a); 8 printf("a=%d\n", a--); 9 10 system("pause"); 11 return 0; 12 } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.14.67.39 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1463844132.A.83C.html

05/21 23:26, , 1F
a++再看一次
05/21 23:26, 1F

05/21 23:34, , 2F
是把a--換成a++嗎? 剛剛試一下還是9
05/21 23:34, 2F

05/21 23:35, , 3F
你再打一個printf("a=%d\n", a);
05/21 23:35, 3F

05/21 23:36, , 4F
後綴--的副作用要到下一行你才看得到
05/21 23:36, 4F

05/21 23:36, , 5F
我怎麼覺得你"定義"寫反了?
05/21 23:36, 5F
※ 編輯: PanYX (101.14.67.39), 05/21/2016 23:45:35

05/21 23:46, , 6F
做完再做+-,那當然+-後的結果該行看不到阿?
05/21 23:46, 6F

05/21 23:47, , 7F
你嘗試在7~8 8~95之間直接檢查a。再研究看看
05/21 23:47, 7F

05/21 23:47, , 8F
8~9*
05/21 23:47, 8F

05/21 23:48, , 9F
t大是寫在哪一行呢? 謝b大 改正了
05/21 23:48, 9F

05/21 23:49, , 10F
b大我試試
05/21 23:49, 10F

05/21 23:49, , 11F
你在printf("a=%d\n", a--);後面加上去就知道為什麼了
05/21 23:49, 11F

05/21 23:57, , 12F
感恩各位解答 所以答案是a=9 a=8 這樣嗎?
05/21 23:57, 12F

05/22 00:01, , 13F
你在第七行的時候印出9此時的a也是9 第八行時先印出9
05/22 00:01, 13F

05/22 00:02, , 14F
印完9後副作用此時a才變成8 所以你在印一次a就會是8
05/22 00:02, 14F

05/22 00:03, , 15F
嗚嗚 這個題目怎麼有點在弄新手阿 哈哈 還是我太淺
05/22 00:03, 15F

05/22 00:31, , 16F
operator 可以看作一個帶有返回值的函式,8,9兩行都會先
05/22 00:31, 16F

05/22 00:31, , 17F
執行 ++,只差在返回值不同
05/22 00:31, 17F

05/22 00:34, , 18F
a++ 是先執行 a++ 喔,不是先做 printf ,只是 a++ 返回
05/22 00:34, 18F

05/22 00:34, , 19F
的是舊值而已
05/22 00:34, 19F

05/22 00:35, , 20F

05/22 02:25, , 21F
回傳值
05/22 02:25, 21F

05/22 12:09, , 22F
一點都沒有弄到好嗎 現在人怎麼那麼容易被弄
05/22 12:09, 22F

05/22 12:10, , 23F
沒事就假設全世界人都要弄他 超棒DER
05/22 12:10, 23F

05/22 12:11, , 24F
都知道自己是新手 跟自己想的不一樣就要學起來懂嗎
05/22 12:11, 24F

05/22 12:11, , 25F
想不通就覺得別人[弄]你 那不要學阿 就不會被[弄]了啊
05/22 12:11, 25F

05/22 12:28, , 26F
實際上就是你太淺而已...
05/22 12:28, 26F

05/22 13:18, , 27F
moon大 開個小玩笑 別太認真 我也後面說我太淺啦
05/22 13:18, 27F

05/22 14:16, , 28F
不知道當初設計 ++/-- 是不是為了對應asm的 INC/DEC ?
05/22 14:16, 28F

05/22 14:17, , 29F
我會吸取教訓 改進自己的!!
05/22 14:17, 29F

05/22 14:17, , 30F
以今日的角度看是滿搞人的沒錯
05/22 14:17, 30F

05/22 14:24, , 31F
至於那種跪在神像前批評別人不跪的 別理他沒關係
05/22 14:24, 31F

05/22 14:43, , 32F
@bibo9901 可以說是對應,但 INC 可沒有先加後加的問題
05/22 14:43, 32F

05/22 14:47, , 33F
b大 謝謝 了解了
05/22 14:47, 33F
文章代碼(AID): #1NG7qaWy (C_and_CPP)