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

#define DOUBLE(r) r*r结果怎么计算出来的

2012-03-01 
#define DOUBLE(r) r*r结果如何计算出来的?#defineDOUBLE(r)r*rmain(){intx1,y2,ttDOUBLE(x+y)printf

#define DOUBLE(r) r*r结果如何计算出来的?
#define   DOUBLE(r)   r*r
main()
{
  int   x=1,y=2,t;
t=DOUBLE(x+y);
printf( "%d ",t);
}
运行结果是5,怎么计算出来的啊,我觉得应该是9啊,X+Y=3,3*3=9.

[解决办法]
DOUBLE(x+y) => x+y*x+y

要这样定义:
#define DOUBLE(r) (r)*(r)
[解决办法]
DOUBLE(x+y) = 1+2*1+2 = 5

[解决办法]
展开之后是
t=1+2*1+2;

热点排行