看板 Examination 關於我們 聯絡資訊
下列以 C 程式語言撰寫之程式執行後產生之輸出為何? #include <stdio.h> #define MAX(a, b) a>b?a:b int main() { int m = 10, n = 10; printf("%d", MAX(++n, m)); return 0; } a.10 b.11 c.12 d.13 答案為C 想請問一下各位,MAX(++n,m)意思是說要把n+1再帶出去 那帶到上面MAX a=11,b=10,接下來a>b?a:b這到底是什麼意思啊? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.231.93.28 ※ 文章網址: http://www.ptt.cc/bbs/Examination/M.1405697313.A.B4B.html
flydragon198:你要先了解 ? : 這個語法,意思是如果a>b為真,則執 07/18 23:29
flydragon198:行a,如果為false,則執行:後的b 07/18 23:29
flydragon198:因為++n被執行兩次,所以會是12,一次在printf,一次 07/18 23:33
flydragon198:在#define,這兩處 07/18 23:33
mantoro:巨集會替換成++n>m?++n:m 07/18 23:45
jolinboyfrie:謝謝噢~我聊解了,因為太少看到這樣的條件判斷式所以 07/19 00:40