C语言函数如何return数组?

2025-04-06 19:18:21
推荐回答(4个)
回答1:

数组在作为函数返回值或者函数参数时,实际上只作为指针来返回或者传递的。因此返回值用指针数据类型。比如下面的代码:

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

回答2:

C语言里无法返回数组,返回指针倒是可以,但是返回一个指向局部变量的指针没有任何意义

#include 
#include 
char *func(const char *s)
{
char *p=(char *)malloc(sizeof(char)*strlen(s));
strcpy(p,s);
return p;
}

int main(void) 
{
char *s=func("hello world");
puts(s);
return 0;
}

回答3:

返回数组绝不可能,跟数组作为参数的情况一样

几种变通办法:

  1. 返回成员是数组的结构体

  2. 返回指向静态数组的指针

  3. 让指向数组的指针和数组长度作为参数,把要返回的东西memcpy到作为参数的指针指向的数组中

回答4:

函数不须用的return就能直接返回数组的,

void fun(char x[])
{x[0]='a';}

main()
{char a[10]="12345";
void fun(char x[]);
fun(a);
printf("%s\n",a);
}