宏定义的值是有加减的结果得来的

#define N 1+2
printf("%d",N*N);
的结果为什么是5
不应该是9吗

等于5,在c语言中define定义后不会自动计算,你定义了N 1+2
在计算时c语言不会自动变为3,而仍然是1+2的形式,那么你计算N*N的时候就成了 1+2*1+2 结过就是5.

有帮助的话希望采纳一下呀

1+2*1+2算一下?
1+2+2
5