25 請問以下 C 語言程式碼最後印出的結果為何?
(A) b = 16
(B) b = 17
(C) b = 20
(D) b = 21
答案:登入後查看
統計: A(53), B(194), C(55), D(212), E(0) #2334371
統計: A(53), B(194), C(55), D(212), E(0) #2334371
詳解 (共 4 筆)
#5612951
#define 宏定義
把替換的文本看成是一個字符串,並不會有任何計算發生,亦不會添加任何的符號
所以 b = A(a+1) 中的 a+1 會直接取代定義中的 x 字符 (不會添加任何括號)
結果 : (a + 1 + 1) * a + 1 + 1
然後把 a = 3 代入 即為答案
( 3 + 1 + 1) * 3 + 1 + 1 = 5 * 3 + 1 + 1 = 17
------------------------------------------------------------------
若想要 21 的答案
那 #define 要改成 A(x) (x + 1) * ( x ) + 1 (加括號)
( a + 1 + 1 ) * ( a + 1 ) + 1 a 代入 3
( 3 + 1 + 1 ) * ( 3 + 1 ) + 1 = 5 * 4 + 1 = 21
6
0