它如何将 5 显示为输出。
#include<stdio.h>
#define max(a,b)(a>b?a:b)
int main()
{
int i=2,j=3,k;
k=max(++i,++j);
printf("%d",k);
}
define max(a,b)(a>b?a:b)
在 max 函数中,我们没有发送 (2,3),而是发送 ++i(2) 和 ++j(3)。这就是为什么当它像
++a>++b?++a:++b
那样进行比较时。由于三元运算符得到 ++3,然后将其增加 1,因此它变成了 4。
希望你能明白。