谁能帮我解释这段程序啊???

来源:百度知道 编辑:UC知道 时间:2024/05/08 15:58:13
#include <iostream.h>
#define M(m) m*m
f1(int x)
{
int a=3;
return M(x+a);
}
void main()
{
int a=4,b;
b=f1(a);
cout<<b<<endl;
}
最好可以逐句翻译!!!

值为19
当程序遇到宏 M(m)时,它替换成 m*m
所以
在f1中
return M(x+a);其实就是 return x+3*x+3;

当 传入4给f1时就是 返回 4+3*4+3=19;
所以b=19。

楼主的愿意是想定义M(m)为m的平方 需这样定义
#definme M(m) (m)*(m)

看来你是刚接触c++语言,还可以肯定你以前没用过其他的编程语言,我尽量详细的给你讲解,有什么不懂得可以发消息,或邮件给我
#include <iostream.h>
//这是包含头文件,这个头文件中定义一些输入输出有关的函数
#define M(m) m*m
//定义一个宏,其实你可以把它看成是一个函数,这个M就是一种运算法则,就像数学中求相反数,比如7,在7前面加一个减号就成了负7,这个M(m),就是如果一个数a=M(2),那么a=2*2=4
f1(int x)
//定义一个函数,函数名为f1,参数为一个int型的数据
{
int a=3;
//定义一个int型的数 a ,并且给他赋值为3
return M(x+a);
//return是返回的意思,执行到这句就会退出这个函数f1,并且有一个返回值,就是M(x+a),即(x+a)*(x+a)=(x+3)*(x+3),
}
void main()
//主函数
{
int a=4,b;
//定义两个数,a b,并且令a=4
b=f1(a);
//给b赋值为f1(a),即M(a+3),就是(a+3)*(a+3),
cout<<b<<endl;
//cout就是输出的意思,在屏幕上打印,endl就是换行的意思,这句话就是现在显示器上显示b得值,然后鼠标移到下一行
}
不知道是不是清楚,有问题再问