举个两个例子: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.定义函数的时候什么情况下需要定义返回值的类型?
1 回答
杨魅力
TA贡献1811条经验 获得超6个赞
以下不包括构造函数(但构造函数中可以写return;以结束其执行)
1,函数的返回值类型只要不是 void ,就要返回一个相同类型的值,当函数出现在一个表达式中时,这个值就是函数的值,比如说你的e=max(a,b);中,max若不返回一个值,那e的值就有问题,这样写函数应该会有错误或者警告
2,作为返回值类型的话,void必须加,如果是参数列表的话,目前可以什么都不写。
3,正如你所说,要不要返回值以及定义成什么类型完全看你的需要,如果你只是用函数来执行一系列操作,那么可以没有返回值(有时可以返回一个值用来表示执行是否成功等信息),如果你用函数来计算一个结果,就可以用返回值来解决,如果结果类型无法或不宜直接返回(如数组等),可以返回指针。
当然你总是可以不使用返回值,而是使用一些(输出)参数来代替,这些参数可以是指针或者引用,用来把数据传出函数。
新的标准中,对于int main(){},可以没有return语句,编译器会自动处理主函数的返回值。
- 1 回答
- 0 关注
- 989 浏览
添加回答
举报
0/150
提交
取消