首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么结果是 7 帮忙分析一下,该怎么处理

2012-05-20 
为什么结果是 7帮忙分析一下#include iostream.h#define sq(x) x*xint main(){ cout1+3sq(1+3)

为什么结果是 7 帮忙分析一下
#include "iostream.h"
#define sq(x) x*x
int main()
{ cout<<"1+3="<<sq(1+3)<<endl;
return 0;
}

[解决办法]
预编译器可不会把x视为一个数字,只会把它视为一个表达式
如楼上所言,1+3*1+3
[解决办法]
宏定义就是字符替换。在预处理期间以字符形式替换掉。那么你的那个替换为
#define sq(x) x*x
int main()
{ cout<<"1+3="<<1+3*1+3<<endl;
return 0;
}
你说这等于7嘛?
[解决办法]
宏定义的陷阱没搞清楚

[解决办法]
#define sq(x) ((x)*(x))这样就好了~~

热点排行