Zichenya 发表于 2020-6-2 21:47:21

求助!!!

#include "stdio,h"
fun(intx, int, y) { return (x+y); }
main( )
{
a=2,b= 2,c=3,sum;
sum= fun(fun((++a; ++b),a+b),a++);
printf(" %d\n",sum);
}
这题结果怎么出来的 结果是10?

qiuyouzhi 发表于 2020-6-2 21:52:22

把a++变成a或许你就理解了
a++是先使用a的值,再++

sunrise085 发表于 2020-6-2 23:46:29

sum=fun(fun((++a,++b),a+b),a++)
从右向左计算
sum=fun(fun((++a,++b),a+b),2),此时a为3
sum=fun(fun((++a,++b),5),2)
sum=fun(fun((4,3),5),2)
sum=fun(fun(3,5),2)
sum=fun(8,2)
sum=10
页: [1]
查看完整版本: 求助!!!