c语言计算的结果问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 11:04:39
(14)执行下面的程序后,a的值是 。
#define FUN(X) X++
main()
{ int a=10,k=2;
a/=FUN(k+a);
printf(“%d\n”,a);
}
为什么结果是1??
可是++的优先级高于/。a/=FUN() --- a=a/(FUN())的吧

我测试了一下
a/=k+a++;
得a=1,k=2
说明就是这么展开的
又试了a/=FUN(a+k);
a=0,k=3
FUN(a+k);
a=10,k=3
应该是优先级问题吧,好像要看些参考资料才行

FUN 展开得
a /= a + x++
先计算.
a /= a;
a = 1;

除非这样定义 #define FUN(X) (X)++
可能就是你想像的结果.