C语言函数能返回一个二维数组吗
1、函数不能返回一个数组,只能返回一个变量,或地址 。如果你想直接返回一个二维数组,这是做不到的。可以用下面的方法 ,先建一个结构体。
struct array{int a[3][3];}; array solve(){array a;return a;} 通过这种方法,来得到二维数组。
2、数组在作为函数返回值或者函数参数时,实际上只作为指针来返回或者传递的。因此返回值用指针数据类型。
比如下面的代码:
int g_a[4] = {1,2,3,4};int * retn_arrary() //返回值用指针类型即要。{return g_a; }
C语言中返回数组元素个数
sizeof(a)的值是在编译时刻确定的,所以如果你在程序里面这样来做:
int a[] = {1, 2, 3, 4, 5};
int len = sizeof(a)/sizeof(a[0]);
那么没有问题,可以正确的得出数组的长度,因为这个时候在编译时刻可以很容易的知道a有5个元素。
但是你把int a[]作为参数传递到函数里面,编译时刻无法得知你要传送什么样的参数进去,所以这个时候实际上是把a当作一个int 指针处理的,那么sizeof(a)实际上是指针的大小,这个在32位系统上是4,而a[0]是一个整数,sizeof(a[0])在32位系统上的的大小也是4,所以就是1了。
c语言函数返回值可以是数组吗
不能直接返回一个数组,但是可以用其他方式实现类似功能。因为全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值定义成全局变量。
当函数被调用时,全局变量被更改,我们再把更改后的全局变量值应用于主调函数中。函数被调用后被更改后的全局变量值即为函数的数个返回值。
易语言中如何在子程序中返回数组
添加一个数组参数,属性设为 参考。 -----------------------------------返回值只能有一个,通常需要返回多个值时用参数传递,即参数内添加参考属性的数组,这样可以得到被修改的值。
如果一定要用返回的方式,可以将返回类型该为字节集,然后用写到内存()将字节集数据写到数组里。 ------------------------------------.版本 2.支持库 spec.子程序 __启动窗口_创建完毕.局部变量 数值, 字节型, , "0".局部变量 字节集, 字节集字节集 = 取数组 ()重定义数组 (数值, 假, 取字节集长度 (字节集))写到内存 (字节集, 取变量数据地址 (数值), )调试输出 (数值).子程序 取数组, 字节集.局部变量 字节集, 字节集字节集 = 到字节集 (“abcdef”)返回 (字节集)
row函数为什么不返回数组
row函数不返回数组是因为没有使用数组作为参数。
row函数是一个用于返回行号的函数,可以接受单元格或单元格区域作为参数。当只有一个参数时,row函数返回该单元格所在的行号;当有多个参数时,row函数返回一个数组,其中每个元素表示相应单元格的行号。
如果想要让row函数返回一个数组,可以将包含多个单元格的区域作为参数。

