C语言中的宏定义

(13)设有以下宏定义:

#define N   3

#define Y(n)   ( (N+1)*n)

则执行语句:   z = 2 * (  N  +  Y(5+1)  ); 后,z的值为

A) 出错          B) 42        C) 48           D)54

 

这道题的答案是48。

这里代入之后,要看清楚:

   N  +  Y( 5+1) 

   3  +  (3+1)* 5 + 1    //宏定义中 *n, n是没有()的了

   3  +     4   * 5 + 1    =24    //之后 24*2=48

 

 

C语言中的宏定义