永发信息网

请高手解答C语言关于return中的问题

答案:2  悬赏:0  手机版
解决时间 2021-05-03 04:14
  • 提问者网友:了了无期
  • 2021-05-02 07:50

int max(int a,int b)
{
int c;
c =(a>b)?a:b;

}
main()
{
int x,y,z;
scanf("%d%d",&x,&y);

z =max(x,y);
printf("%d",z);
getch();
}

这个代码里面没有return,为什么结果和下面的有return的一样

int max(int a,int b)
{
int c;
c =(a>b)?a:b;

return c;

}
main()
{
int x,y,z;
scanf("%d%d",&x,&y);

z =max(x,y);
printf("%d",z);
getch();
}

以及return的用法

最佳答案
  • 五星知识达人网友:春色三分
  • 2021-05-02 07:56
cpu里面有一个寄存器叫EAX,这个寄存器就是用来存储函数的返回值的,当时里面的值是C的值,所以函数调用就直接从eax寄存器中取出值并打印出来了。
全部回答
  • 1楼网友:话散在刀尖上
  • 2021-05-02 09:00

一个函数运行完毕,使用return来返回到主函数。结构体里返回到C,说明C的值就是主函数max的运行结果,所以当Z=max(x,y)时, max的运行结果C等于Z,最后输出Z。

因为结构体中c =(a>b)?a:b的运行结果就是max的最终结果,同时也是C的值,所以和语句return c要表达的意思重复,可以不要return c

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯