宏函数真题

编译器有一个预处理器,会展开所有宏,所以展开后的第一个问题是:

printf("%d ",30/3 * 10);很明显,结果是10*10 = 100。

要得出你想要的结论,你可以这样写宏#define MD (3*T)。

第二个问题是左值和右值的问题。简单来说就是传值传地址的问题。x是指针,属于左值。所以在it *x里其实是对X的改变,而Y是一个值,是一个右值,Y的值是不能改变的。