c语言函数的返回值类型,c语言函数的返回值类型由什么决定

kodinid 15 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言函数的值类型问题,于是小编就整理了3个相关介绍c语言函数的返回值类型的解答,让我们一起看看吧。

  1. C语言函数返回值什么意思?
  2. C语言中函数调用怎么返回两个值?
  3. C或C++中一个函数能不能返回多个值?

C语言函数返回值什么意思?

return后接一个值。在调用这个函数的函数里面,调用它的时候希望获得一个值,如果不希望获得这个值的时候,用void声明就好。

如果需要,比如说需要得到一个整形值就声明int func()在调用它的比如main里面func()的作用就可以相当于一个int型常数比如外面定义了int max(int a,int b){return a>b?a:b;}主函数里面是main(){int A;A=max(1,2);}这时候就是通过max计算 1>2 则return 一个1 ,1<2 则return一个2。很明显1<2 所以这里max(1,2)就会return 一个 2这时候主函数里的max(1,2)就相当于一个常数 2A=max(1,2)的作用就相当于A=2这个意思。

c语言函数的返回值类型,c语言函数的返回值类型由什么决定-第1张图片-安济编程网
图片来源网络,侵删)

C语言中函数调用怎么返回两个值?

在C语言中,函数只能返回一个值,要返回两个值,可以改换思路,通过其它方式做到。1建立数组,返回指针。在要返回的两个值类型相同时,可以用创建数组的方式,将要返回的值存在数组中,并返回数组首地址,这样就可以实现返回两个值的效果。需要注意的是,要返回数组首地址,那么返回的值不可以是局部变量,有如下几种是可以的:

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

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

c语言函数的返回值类型,c语言函数的返回值类型由什么决定-第2张图片-安济编程网
(图片来源网络,侵删)

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

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

2建立结构体,返回结构体变量。将需要返回的值,写成结构体形式,并返回结构体变量,这样可以实现一个返回值中含有多组数据。3当数据规模较小时,可以***用将小规模数据合并为大规模数据的方式,进行返回。

c语言函数的返回值类型,c语言函数的返回值类型由什么决定-第3张图片-安济编程网
(图片来源网络,侵删)

比如,需要返回两个char型数据时,可以通过返回一个short数据,高地位分别存储各自的值。

除以上方法外,还可以不使用返回值的方式,而是通过函数参数传值,或者全局变量传值等方式,将要返回的值回传给主调函数。

1、通过使用指针,在函数调用时,传递带有地址的参数,并使用指针更改其值;这样,修改后的值就会变成原始参数。

2、通过使用指针返回结果为:

3、通过使用结构:因为结构是用户定义的数据类型;可以定义一个包含两个整数变量的结构,并将更大和更小的值存储到这些变量中,然后使用该结构的值。

4、通过使用结构返回结果为:

5、通过使用数组,当一个数组作为参数传递时,基地址将传递给该函数,因此无论对数组副本所做的任何更改,都会更改为原始数组。

6、通过使用数组返回结果为:

C或C++中一个函数能不能返回多个值?

C系列语言是不能的,只能返回一个返回值。 但纠正一下三楼的说法,不是所有语言都是这样,比如matlab就可以返回多个。 如果在C++语言中需要返回多个值可以有以下三种方法:

1、返回一个数组的首地址,那么可以把整个数组的元素返回。 例如: double*a; a=f(); double*f() { b=(double*)malloc(8*2); b[0]=1; b[1]=2; returnb; } 但是多次调用还要考虑释放内存问题

2、传入指针 例如: doublea[2]; f(a) voidf(double*a) { a[0]=1; a[1]=2; }

3、输入引用,可以返回不同类型变量 例如: inta; doubleb; f(a,b) voidf(int&a,double&b) { a=1; b=2; }

到此,以上就是小编对于c语言函数的返回值类型的问题就介绍到这了,希望介绍关于c语言函数的返回值类型的3点解答对大家有用。

标签: 返回 函数 数组