c语言怎么使函数返回值 c语言有返回值的函数

c语言函数如何返回多个值

c语言函数只能最多有一个返回值。我们以一个数据运算函数作为实例讲解:

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了港口免费建站欢迎大家使用!

使用指针返回额外数据:定义指针参数,将结果通过指针返回。

如果有很多类型相同的数据,如何返回数组呢?c语言也只能借助指针返回数组。

使用结构体返回:如果返回多个数据,并且各个数据类型都不相同。那么只能通过结构体返回。

使用结构体指针返回:直接返回结构体,程序执行效率会受到影响。因为需要复制结构体数据,如果结构体数据比较大,复制操作会损耗程序性能。

通过使用结构体指针,我们也可以返回多个数据结果。

在c++中,除了使用指针,通常使用引用返回多个数据。与指针相比,使用引用时不用担心函数调用者传入不符合预期的指针。

C语言如何返回值

首先说明一下你的程序的问题与缺陷:

1: return语句 只能返回一个值,而不能写成 “return h,l;”

2:你在main()中定义了h,l,而在调用cal()时,又定义了h,l,这两个h,l是完全不同的两组。即使你为cal()里的h,l赋值,那么返回到main()时,h,l仍然为0.

3:你在cal()里的scanf写的不好。两个%d之间最好什么都没有,加了逗号,可能会在读取时,h,l赋值错误。(具体请看我下面的程序)

下面是我的解法:

先问一下,你用的是TC2.0还是VC6.0?

如果是VC6.0,那么可以使用引用类型:

/*法一:使用引用*/

#includestdio.h

void cal(intch, intcl);    /*声明ch,cl为引用类型*/

void main()

{

int h=0,l=0;

cal(h, l);            /*这里将h,l传入cal()*/

printf("%d,%d",h,l);    

}

void cal(int ch, int cl)

{

scanf("%d%d",ch,cl);/*这里为ch,cl赋值*/

}

TC2.0中好像不支持引用类型。我没测试。

-------------------------

如果是TC2.0,那么可以使用指针:

/*法二:使用指针*/

#includestdio.h

void cal(int *ph, int *pl);    /*这里将ph,pl声明为指针*/

void main()

{

int h=0,l=0;

cal(h, l);        /*将变量h,l地址传过去。*/

printf("%d,%d",h,l);

}

void cal(int *ph, int *pl)

{

scanf("%d%d",ph,pl);    /*为ph,pl赋值*/

}

------------------

以上两种方法都可以解决你说的问题。

有问题请追问。

c语言中,函数返回值怎么用?

return后接一个值。

在调用这个函数的函数里面,调用它的时候希望获得一个值,如果不希望获得这个值的时候,用void声明就好。如果需要,比如说需要得到一个整形值

就声明

int func()

在调用它的比如main里面

func()的作用就可以相当于一个int型常数

比如外面定义了

int max(int a,int b)

{

return ab?a:b;

}

主函数里面是

main()

{

int A;

A=max(1,2);

}

这时候就是通过max计算 12 则return 一个1 ,12 则return一个2。很明显12 所以这里max(1,2)就会return 一个 2

这时候主函数里的max(1,2)就相当于一个常数 2

A=max(1,2)的作用就相当于A=2

这个意思。

c语言怎么返回值?

所谓返回值,就是人们想要知道函数或者程序所得到 的结果而设计的函数或者程序结束时给出一个值。比如:我们编写一个加法函数,肯定想知道加完过后的结果是什么,那么我们就指定这个结果为该加法程序的返回值。

关于返回值的返回:

1、函数调用语句本身代表其返回值:例如:fun(a);那么“fun(a)”就是这个返回值。

2、可以把返回值存到对应类型的变量之中。例如:int a=fun(b);

3、返回值是多种多样的,可以是各种各样的,int short char double 等等,还可以是指针或者结构体。在数据结构的二叉树部分,某一个函数的返回值是一个带有两个指针的结构体。

C语言-函数返回值return

①为什么需要return?

为了回答这个问题,

我打算用 模块思维 来解释。

②定义模块(形参模块)

定义函数:f(s)(a,b)

满足公式:s=a+b

函数名:f(s)

形参: a,b(公式中的 变量 )

函数返回值:return s

③调用模块(实参模块)

主函数:main()表示用户自己编写的部分

调用函数:f(s)(1,2)

满足公式:x=f(s)(1,2)

函数名:f(s)和定义函数一致,产生调用

实参 :1,2( 赋值 给公式的值)

求值:printf("%d\n",x),求x的值?

④值的传递过程

调用模块 中调用函数x=f(s)(1,2)

将实参1和2的值赋值给

定义模块 中的形参a和b

(实参到形参是单向传递,不可逆)

定义模块计算出s=a+b=1+2=3

定义模块 中的return s

将s的值赋值给

调用模块 中的函数f(s)(1,2)

即x=f(s)(1,2)=s=3

~

return s的作用

就是将定义模块中的s

赋值 给调用模块中的调用函数

如果没有return s

调用模块中的调用函数将永远没有定值

即所求x 无定值

这一点和数学不一样,

数学中

同一函数名的值是 通用 的,

C语言中

定义函数和调用函数的值是 隔离 的,

尽管函数名一样

如果不赋值,调用函数永远无定值。

网站题目:c语言怎么使函数返回值 c语言有返回值的函数
文章出自:https://www.cdcxhl.com/article18/doddddp.html

成都网站建设公司_创新互联,为您提供用户体验网站维护小程序开发软件开发网页设计公司App开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管