结果是4+6/4+6=4 + 1 + 6 = 11
注意6/4是整除
回答:
问题出在宏定义中,宏定义只是简单的进行文本替换,而不是进行计算。所以在表达式4+6/NUM中,宏定义会被替换成11,然后进行计算,得到的结果是11。解决这个问题的方法是使用括号将NUM括起来,以确保计算顺序正确。即改为4+6/(NUM)。
代码如下:
int main() { int result = 4 + 6 / NUM; // 结果为11 result = 4 + 6 / (NUM); // 结果为1 return 0; }