收视率 查询 日本:谁能给我解释这条程序的输出结果

来源:百度文库 编辑:高考问答 时间:2024/04/29 18:09:08
#include<iostream.h>
#define M 1.5
#define A(a) M*a
void main()
{
int x(5),y(6);
cout<<A(x+y)<<endl;
}
这条程序的输出结果是13.5,谁能给我解释一下

我认为A(x+y)是先编译为了A(x) + y;

A(x+y) <=> M*x+y
如果将 #define A(a) M*a 改为
#define A(a) M*(a)
那么A(x+y) <=> M*(x+y)

新手解答:
A(a) M*a 定义了一个宏或说函数:
A(a) = M*a
A(x+y) = A(x)+y = 13.5

我认为2楼的答案是正确的,我的意见和他的一样!