
正文
c语言数组作为返回,c语言返回值为数组
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言中函数返回值可以是数组、字符串和结构体吗?
在C语言中,函数的返回值类型由函数声明的返回类型决定。函数的返回类型可以是任何基本数据类型,如int、float、char等,可以是结构体、联合体等复杂数据类型。函数的返回类型声明在函数名之前,用类型关键字指定。如,下面的函数声明中,函数的返回类型是int:在函数体中,使用return语句返函数的值。
不能直接返回一个数组,但是可以用其他方式实现类似功能。方法1:利用全局变量 分析:全局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多。
你好,目前c语言规定只能有一个返回值,但是你可以让这个返回值是一个结构体,或者是数组什么的,这样你就可以变相获得多个返回值了。
可以定义一个包含两个整数变量的结构,并将更大和更小的值存储到这些变量中,然后使用该结构的值。通过使用结构返回结果为:通过使用数组,当一个数组作为参数传递时,基地址将传递给该函数,因此无论对数组副本所做的任何更改,都会更改为原始数组。
因为C语言在设计时是以效率优先的,因为数组可能很大,整体传递很花时间,所以不允许数组整体赋值,也不能返回数组,也不作为参数传递(数组作参数时实际是将它转化成了指针,这好像不符合值传递)。不过如果确实需要返回数组,也是有办法的,可以将其包在结构中。
相关问答
Q1: c语言中调用函数的返回值,如果是数组,主函数要输出这个数组怎么实现啊...
在主调函数中建立数组,将数组指针传给自定义的函数,处理后主调函数中的数组值也就变化了。void fun(int a[],int n){ ...}//其中a[]就是要输入的数组,n是这个数组的长度。
我们首先定义一个二级指针和一个行列变量[int ** array,row,column;]。然后我们编写进入行和列的语句,代码如图所示。接下来我们可以用一维数组打开一维一维数组。接下来,我们使用[array [i] =(int *)malloc(sizeof(int)* column);]来为数组再次生成包含该数组的新数组。
因为 void函数没有返回值,要想把让函数的值带回主函数,还有两种办法,第一是使用指针做参数,第二是潆数组做参数。用指针传递就可以了吗,那如果不用指针呢?用指针当然可以啦。如果不用指针,那就选择用数组参数了。
可以定义一个包含两个整数变量的结构,并将更大和更小的值存储到这些变量中,然后使用该结构的值。通过使用结构返回结果为:通过使用数组,当一个数组作为参数传递时,基地址将传递给该函数,因此无论对数组副本所做的任何更改,都会更改为原始数组。
Q2: C语言里1维数组作为返回值怎么传给主函数??
数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送, 也就是说把实参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。void func(int array[10])void func(int array[])void func(int *array)所以以上三种函数声明完全等同。实际情况是,数组做参数,完全无法按值传递。这是由C/C++函数的实现机制决定的。
以下是我写的一个简单的例子,一维数组和二维数组传参。以下是运行结果,写的不好请指正,如图所示。
因此,如果想在主函数中输出自定义函数中定义的数组,就要在自定义函数中把数组定义为静态数组,然后返回数组名即可。静态变量的生命周期是整个程序的生命期,从定义开始,直到程序结束,才会被释放。
在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。在大多数情况下,一维数组和一维指针是可以通用的。比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。
C语言调用完void函数后如何将值返回主函数实现输出的呢?因为 void函数没有返回值,要想把让函数的值带回主函数,还有两种办法,第一是使用指针做参数,第二是潆数组做参数。用指针传递就可以了吗,那如果不用指针呢?用指针当然可以啦。如果不用指针,那就选择用数组参数了。
关于c语言数组作为返回和c语言返回值为数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








