[考題] 計算機概論 程式輸出問題

作者: jolinboyfrie (宇)   2014-07-18 23:28:31
下列以 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這到底是什麼意思啊?
作者: flydragon198 (Richard)   2014-07-18 23:29:00
你要先了解 ? : 這個語法,意思是如果a>b為真,則執行a,如果為false,則執行:後的b因為++n被執行兩次,所以會是12,一次在printf,一次在#define,這兩處
作者: mantoro (小中中)   2014-07-18 23:45:00
巨集會替換成++n>m?++n:m
作者: jolinboyfrie (宇)   2014-07-19 00:40:00
謝謝噢~我聊解了,因為太少看到這樣的條件判斷式所以

Links booklink

Contact Us: admin [ a t ] ucptt.com