c语言函数返回数组_c语言函数返回数组不使用指针

admin 1 0

C语言中有没有返回数组类型的函数?

实际上就是返回了一个数组。你的最后一个问题,指定数组类型,实际上只要指定指针类型就可以了。还有一种方法就是楼上的兄弟说的了,定义一个新的数据类型存放数组,函数返回该数据类型也就相当于返回了一个数组。(上面的函数中数组有作用域问题,仅做说明使用。

ANSI C语言标准,明确规定 数组类型和函数类型不可以做为返回值。解决这种返回值的方法是通过指针来间接返回,即使用数组指针和函数指针。这可以做为c语言引入指针的另一个理由。字符串是数组的一种,是字符数组,所以同样不可以作为返回值。

数组不可以直接返回,只能通过参数传递出来,比如:void fun(int p);int main(){ int a[100];fun(a);return 0;} 希望能帮助你。

数组在作为函数返回值或者函数参数时,实际上只作为指针来返回或者传递的。因此返回值用指针数据类型。比如下面的代码:int g_a[4] = {1,2,3,4};int * retn_arrary() //返回值用指针类型即要。

c语言没有直接读取返回数组的函数。看你问题里文件内容格式是:一行一个字符串回车换行。那么,用fgets一次读一行,你写循环调用这个fgets函数把读取的值放在数组里。至于你说的数组长度宽度不定,在c里需用malloc动态申请内存。

注意C/C++不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。在C/C++中,一般有两种方法来返回一个数组。

怎么使C语言的函数返回值为一个数组

方法:把最大值、最小值分别定义成2个全局变量max、min,在用户自定义函数中把求出来的最大值与最小值分别赋给全局变量max、min。函数调用完毕后全局变量的max、min值即保存了函数要求返回的值。

在C/C++中,一般有两种方法来返回一个数组。

因此,如果想在主函数中输出自定义函数中定义的数组,就要在自定义函数中把数组定义为静态数组,然后返回数组名即可。静态变量的生命周期是整个程序的生命期,从定义开始,直到程序结束,才会被释放。

首先,C/C++只能返回数组的指针而不能返回整个数组。即使返回数组的指针,但如果函数中的数组是自动性质,那将是危险的。这是比较正宗的表述。如果确实需要从函数中返回自动性质的数组的全部元素值,有没有办法呢?有。

在主调函数中建立数组,将数组指针传给自定义的函数,处理后主调函数中的数组值也就变化了。void fun(int a[],int n){ ...}//其中a[]就是要输入的数组,n是这个数组的长度。

C语言中,return语句怎么样返回一个数组?

1、首先,C/C++只能返回数组的指针而不能返回整个数组。即使返回数组的指针,但如果函数中的数组是自动性质,那将是危险的。这是比较正宗的表述。如果确实需要从函数中返回自动性质的数组的全部元素值,有没有办法呢?有。

2、在C语言中,无法直接返回一个数组,但是可以通过返回对应类型指针的方式,返回数组。在大多数情况下,一维数组和一维指针是可以通用的。比如,定义一个函数,申请一定长度的整型动态数组,其长度用参数传入,并将结果返回。如出错,返回空指针NULL。

3、没办法,你只能通过指针传递一个数组或结构体的地址进来,然后填入需要返回的内容,通过地址传参来解决多返回值的需求。

C语言函数如何return数组?

1、int g_a[4] = {1,2,3,4};int * retn_arrary() //返回值用指针类型即要。

2、在C/C++中,一般有两种方法来返回一个数组。

3、/* do something with array */ return array;}这样这个数组建立在heap堆上,调用完函数还在,而你返回了那个堆上数组的首地址,这样就没问题了。用完free(array);楼上用static不推荐,用static的话会在整个程序的run time运行时都占用空间。而是用malloc,动态申请释放更合理。

4、在要返回的两个值类型相同时,可以用创建数组的方式,将要返回的值存在数组中,并返回数组首地址,这样就可以实现返回两个值的效果。

c语言中函数返回值可以是数组、字符串和结构体吗?

1、ANSI C语言标准,明确规定 数组类型和函数类型不可以做为返回值。解决这种返回值的方法是通过指针来间接返回,即使用数组指针和函数指针。这可以做为c语言引入指针的另一个理由。字符串是数组的一种,是字符数组,所以同样不可以作为返回值。

2、你说的这种情况,函数返回的是整个结构体,无论这个结构体中包含了多少个成员,一个结构体就只是一个变量(结构体本身就是一个变量,无论它包含了多少个成员)。这样,函数返回一个结构体就意味着函数把结构体中所有的成员都返回了。

3、所谓函数类型是指函数返回值的类型。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数。定义指针型函数的一般形式为:类型说明符 *函数名(形参表){ …… /*函数体*/ } 其中函数名之前加了“*”号表明这是一个指针型函数,即返回值是一个指针。

c语言中函数能返回一个数组吗

1、不能直接返回一个数组,但是可以用其他方式实现类似功能。方法1:利用全局变量 分析:全局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多。

2、首先,C/C++只能返回数组的指针而不能返回整个数组。即使返回数组的指针,但如果函数中的数组是自动性质,那将是危险的。这是比较正宗的表述。如果确实需要从函数中返回自动性质的数组的全部元素值,有没有办法呢?有。

3、把数组定义成全局变量,全局变量是在程序运行结束后才被释放的,可以返回 2,用malloc函数手动分配数组的地址,这样数组就被保存在堆中,在函数结束时不会被系统回收,在程序结束的时候也不会被系统回收,所以在程序结束的时候一定要注意对这块内存的回收释放,避免内存泄露。

标签: #c语言函数返回数组