有如下程序 #include <stdio.h> #define D(x) 4*x+1 main() { int i = 2, j = 4; printf("%d\n", D(i+j)); } 程序运行后的输出结果是

admin2021-06-15  19

问题 有如下程序
#include <stdio.h>
#define  D(x)    4*x+1
main()
{
    int i = 2, j = 4;
    printf("%d\n", D(i+j));
}
程序运行后的输出结果是

选项 A、25
B、13
C、9
D、12

答案B

解析 带参数的宏定义不是进行简单的字符串替换,而是要进行参数替换。替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。调用函数D(i+j),进行替换为4*i+j+1=13,输出13,B选项正确。
转载请注明原文地址:https://jikaoti.com/ti/J2z0FFFM
0

最新回复(0)