鱼C论坛

 找回密码
 立即注册
查看: 1991|回复: 6

这题求解

[复制链接]
发表于 2020-6-2 22:40:39 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int fun(int x, int y)
{ return (x+y); }
main( )
{
int a=2,b=2,c=3,sum;
sum=fun(fun((++a,++b),a+b),a++);
printf("%d\n",sum);
}

运算过程是怎么样的? 结果10怎么出来的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-2 23:45:17 | 显示全部楼层
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 00:28:56 | 显示全部楼层
学会了,可能考试多得几分,但不帮助面试
学不会,可能考试少得几分,但不影响面试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 08:17:54 | 显示全部楼层
sunrise085 发表于 2020-6-2 23:45
sum=fun(fun((++a,++b),a+b),a++)
从右向左计算
sum=fun(fun((++a,++b),a+b),2),此时a为3

666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 09:15:29 | 显示全部楼层
sunrise085 发表于 2020-6-2 23:45
sum=fun(fun((++a,++b),a+b),a++)
从右向左计算
sum=fun(fun((++a,++b),a+b),2),此时a为3

为什么到4步4不见了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 09:49:16 | 显示全部楼层
L.G.明 发表于 2020-6-3 09:15
为什么到4步4不见了

因为那里有小括号,(4,3)的结果就是3。并列语句的结果是最右侧的结果。例如:int a=(0,3+4,5*8)得到的a值是40
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-5 15:22:41 | 显示全部楼层
我觉得你少写了个fun。fun(++a,++b)和(++a,++b)结果不一样。前者是函数,后者取最后一个值作为结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 16:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表