C语言函数return和void的用处和意义分别是什么?

举个两个例子:

1):函数中加了return的:

int max(int x,int y)
{
int z;
z=(x>y)?x:y;
return z;
}
main()
{
int a,b,c,d,e,f;
scanf("%d%d%d%d",&a,&b,&c,&d);
e=max(a,b);
f=max(c,d);
printf("shi %d",e);
getch();
}

2)函数中不加return的:

int max(int x,int y)
{
int z;
z=(x>y)?x:y;
}
main()
{
int a,b,c,d,e,f;
scanf("%d%d%d%d",&a,&b,&c,&d);
e=max(a,b);
f=max(c,d);
printf("shi %d",e);
getch();
}

这两个函数中一个加了return,一个没加,但是求的结果都是一样的!我想问的是:

1.在什么情况下必须要加返回值return?它的作用是什么?

2.函数中的void是否可加可不加?什么情况下是必须加的?

3.定义函数的时候什么情况下需要定义返回值的类型?

回首忆惘然
浏览 990回答 1
1回答

杨魅力

以下不包括构造函数(但构造函数中可以写return;以结束其执行)1,函数的返回值类型只要不是 void ,就要返回一个相同类型的值,当函数出现在一个表达式中时,这个值就是函数的值,比如说你的e=max(a,b);中,max若不返回一个值,那e的值就有问题,这样写函数应该会有错误或者警告2,作为返回值类型的话,void必须加,如果是参数列表的话,目前可以什么都不写。3,正如你所说,要不要返回值以及定义成什么类型完全看你的需要,如果你只是用函数来执行一系列操作,那么可以没有返回值(有时可以返回一个值用来表示执行是否成功等信息),如果你用函数来计算一个结果,就可以用返回值来解决,如果结果类型无法或不宜直接返回(如数组等),可以返回指针。当然你总是可以不使用返回值,而是使用一些(输出)参数来代替,这些参数可以是指针或者引用,用来把数据传出函数。新的标准中,对于int main(){},可以没有return语句,编译器会自动处理主函数的返回值。
打开App,查看更多内容
随时随地看视频慕课网APP