c语言函数问题:1.不需要返回值的函数,即直接让函数输出某个值或符号的,必须要定义成void类型才规范对?

c语言函数问题:1.不需要返回值的函数,即直接让函数输出某个值或符号的,必须要定义成void类型才规范对么?2.需要同时输出两个值的函数,可不可以改为有返回值类型的,如果可以那具体应该怎么改?

void表示函数无返回值,也就不需要写return。如没有返回值的函数,void要写,否则默认返回值是int型需要return语句。

关于函数返回多个值,有很多方法:

一、不返回,函数返回值依然是void,但传值的时候传变量地址,那么在函数运行中改变变量地址里的值,函数运行结束,外面实参变量也改变了。比如void fun(int* a)。

二、不返回,函数通过全局变量传递值。

三、返回数组类型(包括结构数组),在函数中将要返回的多个值放在数组中返回,比如char *fun()。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-19
1。不需要返回值的函数,可以定义为void,这样的确规范些,但不是必须。比如main函数你就可以定义为int,但没有值返回,其实编译器会帮你返回一个默认值。
2。 需要同时返回多个值的, 有几种方式,一种是用指针的形参,通过指针指向的地址来返回结果,这个不一定要改为有返回值类型的,因为是通过参数返回。 还有个方法就是返回指针,这个需要改为有返回值类型的,可以是一个结构的指针或者数组的指针或者链表,在结构或数组或链表中返回结果。但这种方式新手要注意,不能使用局部变量来返回,分配的空间在使用后也要记得释放
相似回答