c语言中调用函数如何返回多个值?

作者&投稿:南蚂 (若有异议请与网页底部的电邮联系)
~

建立数组,返回指针。

在要返回的两个值类型相同时,可以用创建数组的方式,将要返回的值存在数组中,并返回数组首地址,这样就可以实现返回两个值的效果。需要注意的是,要返回数组首地址,那么返回的值不可以是局部变量,有如下几种是可以的:

a) 使用静态局部变量存储,并返回地址;

b) 使用全局变量存储,返回地址;

c) 函数中动态分配内存,并返回申请到的地址,此种方法需要注意,在使用后需要释放;

d) 在参数中传入数组地址,并返回。即返回的实际上是主调函数中的变量地址。

扩展资料

通常我们希望通过函数调用使主调函数能得到一个确定的值,这就是函数的返回值。函数的返回值是通过函数中的 return 语句获得的。return 语句将被调函数中的一个确定的值带回到主调函数中,供主调函数使用。

函数的返回值类型是在定义函数时指定的。return 语句中表达式的类型应与定义函数时指定的返回值类型一致。如果不一致,则以函数定义时的返回值类型为准,对 return 语句中表达式的类型自动进行转换,然后再将它返回给主调函数使用。

在调用函数时,如果需要从被调函数返回一个值供主调函数使用,那么返回值类型必须定义成非 void 型。此时被调函数中必须包含 return 语句,而且 return 后面必须要有返回值,否则就是语法错误。

如果函数有返回值,那么 return 语句后面的括号可以不要,比如“return(z);”等价于“return z;”。若不需要返回值则可以不要 return 语句。

需要强调的是,一个函数中可以有多个 return 语句,但并不是所有的 return 语句都起作用。执行到哪个 return 语句,就是哪个 return 语句起作用,该 return 语句后的其他语句就都不会执行了。




C语言函数调用时如何进行判断的?
include<stdio.h> int main(){ int i,m=0;for(i=2;i<=100;i+=2) m=m+i;printf("%d\\n",m);return 0;} 或 include int main(){ int i,sum=0;for(i=1;i<=50;i++){ sum=sum+2*i;} printf("2+4+6+…+98+100=%d\\n",sum);return 0;} ...

c语言中怎么调用函数?谢谢
main(){int a=1, b=2, c;c = fun(a, b); \/\/ 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值}\/\/ 自定义函数funint fun(int x, int y) \/\/ 函数首部{ \/\/ {}中的语言为函数体return x>y ? x : y; \/\/ 返回x和y中较大的一个数} ...

C语言中函数调用有几种情况
函数调用有俩种情况 1:声明函数,然后直接在函数体内调用函数,这样的做法是先保存当前函数执行的地址,然后查找函数指针,找到函数声明,再找到函数实现,创建一个函数堆栈,直接在函数堆栈里面操作,然后将返回值传给主函数。然后通过之前保存的地址,继续执行之后的代码。过程比较复杂。2:内联函数和动态...

C语言中什么叫调用函数?为什么函数和函数之间是调用关系
调用函数就是计算机编译或运行时,使用某个函数来完成相关命令。对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。在程序中通过对函数的调用来执行函数体,其过程与其它语言的子程序调用相似。C语言中,函数调用的一般形式为:函数名(...

C语言中怎样调用函数(举个例子)
C语言中调用函数的方法及步骤:工具\/原料:C语言 1、首先需要输入想要调用的函数。2、然后当输入一个括号后,即可观察他的参数。3、接着在对应的参数中输入参数值。4、然后,系统会发生一个警告。5、接着需要调用它相应的头文件。6、最后再次编译,发现没有任何警告和错误即可。

c语言中函数的调用有几种方式
在C语言中,可以用以下几种方式调用函数:1. 函数表达式:2. 函数语句:3. 函数实参;函数的嵌套调用

c语言调用函数比不调用函数的时间略长吗?因为机器码中会多中断指令?
调用一个函数肯定会很长,因为这样会有堆栈的保存和恢复。之所以有不同的函数,就是编码可读性高,代码复用率高,比如写一个add函数,很多流程可以直接调用,不用再重新写这个add函数。也可以在函数前加 inline ,编译器会把这个函数的代码展开到调用的函数里 ...

C语言中什么叫调用函数?为什么函数和函数之间是调用关系?
在这里小红就相当于被调用函数,小明是调用函数。函数调用总共有三种方式:1. 函数表达式:1函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。2. 函数语句:函数调用的一般形式加上分号...

c语言中函数调用有三种方法,能帮忙各举个例子吗?
C语言中,函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数,变量或其它构造类型数据及表达式。各实参之间用逗号分隔。8.4.2 函数调用的方式 在C语言中,可以用以下几种方式调用函数:1.函数表达式:函数作为表达式中的一项出现在表达式中,以...

C语言中调用函数为什么写在主函数的前面?
因为在C程序的执行总是从main函数开始的,无论main函数在哪个位置都肯定从它开始,如果你定义的函数在main函数之后而且在main函数前没有进行该调用函数的声明那么当在main函数中调用的该函数系统将不认识他,会有错误提示的,如果你定义的函数在main函数之前,那么就没事了,说的有点乱,总之记住C程序中...

蛟河市17755725597: C语言:一个函数只能返回一个值吗? 如果不是,怎样返回多值? -
双饱南元: 返回一个数组就可以了.如果想返回不同类型的值,先定义个结构体,把要返回的值存入结构体变量,再把这个结构体变量返回就行了.

蛟河市17755725597: C语言中一个函数怎样返回多个值 -
双饱南元: 方法一:设置全局变量,这样你在形参中改变全局变量,在实参中也会有效.所以你可以在形参中改变多个全局变量的值,那么在实参中就相当于返回多个值.方法二:如果你用数组名作为形参,那么你改变数组内容,比如排序,或者进行加减运算,回到实参时依然是有效的.这样也会返回一组值.方法三:可以利用指针变量,这个原理和方法二是一样的,因为数组名本身就是数组首元素的地址.就不多说了.方法四:如果你学过C++,可以引用参数

蛟河市17755725597: c语言一个函数返回多个值 -
双饱南元: 函数最终只能返回一个值!!! 你可以用“数组或指针”; 如 #include<stdio.h> void ser(int *x,int *y) {*x=20;//把改变后的结果传给主函数*y=30; } void main() {int a,b;a=1,b=2;ser(&a,&b);printf("a:%d b:%d\n",a,b);}

蛟河市17755725597: c语言中调用函数如何返回多个值? -
双饱南元: 可以有很多方法实现 你可以不使用数组,使用vector来做 std::vector convert(int a, int b) { std::vectorc; c.push_back(a+b); c.push_back(a-b); c.push_back(a*b); c.puch_back(0); } 或者你可以在外面定义一个数组,作为传入参数 void convert(int a, ...

蛟河市17755725597: C语言:如何定义一个函数!使它返回多个值 -
双饱南元: 可以有很多方法,如:1):自定义一个结构体,把你想要返回的信息放在结构体里返回.2):通过指针参数返回.3):映射同一内存区域..... 很多

蛟河市17755725597: c语言如何使用return语句返回多个值,并作为另一个函数的参数? -
双饱南元: return只能返回简单数据类型数据如果想返回多个类型数据组成的一组数据,可以将它们组合成结构,返回指向存放这些数据的结构的指针,或者要返回的是一...

蛟河市17755725597: 请高手指点:在c语言中如何用一个函数返回多个值? -
双饱南元: 用指针改变一个数组的 值 返回 这个指针或者 在 函数里面 修改全局变量 ``可以改变多个值

蛟河市17755725597: 在c语言中,是怎么使用全局变量使得被调用函数能够返回多个值? -
双饱南元: 分析:全局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多.由于全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值定...

蛟河市17755725597: C语言的子函数怎么返回两个值 -
双饱南元: 函数是不能直接返回两个值的,不过可以通过数组,列表,链表等方式,返回多个值.例如 int a[] f(),这个函数返回值就是一个整型的数组,如果你要返回两个值,可以定义数组长度为2,a[0]保存第一个值,a[1]保存第二个值.

蛟河市17755725597: C语言中自定义的函数可以一次返回多个值吗?就是用return一次返回多个值 -
双饱南元: 这个目前C语言还不支持.目前C语言的返回值只能是一种类型.如果想返回多个值的话,那楼主可以定义一个结构体类型,将结构体类型返回就可以了.实例代码如下:#include <stdio.h>#include <stdlib.h> struct return_test { int a; int b; }; struct ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网