以下程序的运行结果是( )。 #define X a+b main( ) { int a=3,b=4,s1; s1=2*X; printf("%d\n",s1); }
发布网友
发布时间:2022-11-06 23:42
我来回答
共2个回答
热心网友
时间:2023-10-29 19:43
宏扩展时是“字符串替换”,把s1=2*X;中的X用a+b替换就一目了然:s1=2*X;-->s1=2*a+b;再代入a和b的值s1=2*a+b==2*3+4=10。所以最后输出是10。
热心网友
时间:2023-10-29 19:43
结果是 10
在 X = a + b 前提下,s1=2*X 实质上是s1 = 2 * a + b ,也就是直接用 a + b 代替X;
如果是在在X=( a + b ) 前提下,结果会是14,就是s1 = 2 * ( a + b ),也就是直接用 ( a + b ) 代替X。