刚遇到的一个宏定义的小疑点,各位帮忙看看

刚遇到的一个宏定义的小问题,各位帮忙看看!C/C++ code#define X 5#define Y X+1#define Z Y*X/2void main(

刚遇到的一个宏定义的小问题,各位帮忙看看!

C/C++ code
#define X 5#define Y X+1#define Z Y*X/2void main(){    int a = Y*X/2;    cout<<X<<"\t"<<Y<<"\t"<<Z<<"\t"<<a<<endl;}

这里面输出结果各位觉得是多少?为什么

[解决办法]
a ==
5+1*5/2
== 5+5/2
== 5+2
== 7