C语言子函数如何返回一个数组,主函数如何接收?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言子函数如何返回一个数组,主函数如何接收?相关的知识,希望对你有一定的参考价值。
子函数求得一个整数每一位的数值,存在数组中该如何返回给主函数?
一般是需要主函数提供保存数据的数组,在参数中给出数组起始地址,然后子函数在其中填充,比如要准会的整数是56void fun(int *a,int b) ...
void main() int a[20];
fun(a,56);
参考技术A 可用整数类型接收
再把这个地址给一个数组变量
也就是让这个数组指向返回数组的首地址
C语言函数如何return数组?
有没有办法让一个函数return一个这个函数中的数组?请给个小例子并解释一下,谢谢!
数组在作为函数返回值或者函数参数时,实际上只作为指针来返回或者传递的。因此返回值用指针数据类型。比如下面的代码:
int g_a[4] = 1,2,3,4;int * retn_arrary() //返回值用指针类型即要。
return g_a;
参考技术A
C语言里无法返回数组,返回指针倒是可以,但是返回一个指向局部变量的指针没有任何意义
#include <stdio.h>#include <string.h>
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;
本回答被提问者采纳 参考技术B
返回数组绝不可能,跟数组作为参数的情况一样
几种变通办法:
返回成员是数组的结构体
返回指向静态数组的指针
让指向数组的指针和数组长度作为参数,把要返回的东西memcpy到作为参数的指针指向的数组中
void fun(char x[])
x[0]='a';
main()
char a[10]="12345";
void fun(char x[]);
fun(a);
printf("%s\n",a);
以上是关于C语言子函数如何返回一个数组,主函数如何接收?的主要内容,如果未能解决你的问题,请参考以下文章
在c语言中子函数引用主函数中的值和引用主函数某个值的地址的区别