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.定义函数的时候什么情况下需要定义返回值的类型?

return是C语言中的一个关键字,void是C语言中数据的一个类型。
return意为返回,void意为“无类型”或者“空类型“
return 用来被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
void 用途为:
1. 如果函数没有返回值,那么其返回值应声明为void类型,否则会被编译器作为返回整型值处理。
2.如果函数无参数,那么应声明其参数为void类型,否则编译器会报错。
3.如果函数的参数可以是任意类型指针,那么应声明其参数为void *。
如:memcpy函数原型为void * memcpy(void *dest, const void *src, size_tlen);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-03
以下不包括构造函数(但构造函数中可以写return;以结束其执行)
1,函数的返回值类型只要不是 void ,就要返回一个相同类型的值,当函数出现在一个表达式中时,这个值就是函数的值,比如说你的e=max(a,b);中,max若不返回一个值,那e的值就有问题,这样写函数应该会有错误或者警告
2,作为返回值类型的话,void必须加,如果是参数列表的话,目前可以什么都不写。
3,正如你所说,要不要返回值以及定义成什么类型完全看你的需要,如果你只是用函数来执行一系列操作,那么可以没有返回值(有时可以返回一个值用来表示执行是否成功等信息),如果你用函数来计算一个结果,就可以用返回值来解决,如果结果类型无法或不宜直接返回(如数组等),可以返回指针。
当然你总是可以不使用返回值,而是使用一些(输出)参数来代替,这些参数可以是指针或者引用,用来把数据传出函数。
新的标准中,对于int main(){},可以没有return语句,编译器会自动处理主函数的返回值。本回答被提问者采纳
第2个回答  2010-04-03
1.return 都是在main函数中,这是返回给操作系统的,告诉操作系统本程序 退出了,看你用什么编译器了,有些如果主函数中没有返回值return就要出问题

2.看你做什么用了,void函数表示没有返回值的,如果你只是个过程调用,就用void,还有一个作用就是返回通用指针的函数,如果需要其他返回值的话,就得加相应的返回值类型
3.定义函数,看你做什么用了,如果你需要返回值就要定义返回值类型,因为我需要通过此函数得到某个值,而我需要这个值,那就得通过返回来获得。函数就是这样,使我们的思路比较清晰
第3个回答  2010-04-03
void 是指函数执行完毕之后,没有返回值,直接返回调用函数的地方,return是指函数执行结束之后,会产生一个计算结果,由return将计算结果作为函数的返回值带回到调用函数的地方
第4个回答  2010-04-03
void是空类型,main前懒得考虑的话写它省事。return返回函数值,用它把被调函数的结果送给主调含数,就像水泵的出水口
相似回答