当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

c语言函数返回数组问题

更新:02-25 整理:39baobao.com
字体:

[C语言如何声明一个返回函数指针的函数]C语言指向函数的指针承载的信息比较复杂,组织起来要素要写全。根据指向函数的指针的书写语法,下面的代码就是一个返回函数指针的函数: int (*f(void))(int){//f是函数,没有参数,...+阅读

你好.函数不能返回数组,但是可以返回数组的指针. 所以在函数的形参传递时传递指针就行了. #include #include char* copystr(char ch[],char ch2[]); //返回指针类型. void main() { char a[255]; char b[255]; printf("please type \n\"str1 str2\" \n"); scanf("%s%s",a,b); copystr(a,b); printf("%s\n",b); getch(); } char* copystr(char ch[],char ch2[]) //返回指针,形参改成指针. { int i=0; for(i;ch[i]==0;i++) { ch2[i]=ch[i]; } return ch2; }

已经帮你改过来了. 上面的函数就实现了. 满意请采纳. 谢谢!

c语言中如何使返回值为数组

1、注意C/C++不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。

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

第一种方法:

返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组例子如下:#include#includeint (*retArray())[10]{int (*a)[10];int i=0;/*动态开辟空间*/

a=calloc(10,sizeof(int));/*赋值*/for(i=0;i<10;i++){(*a)[i]=i;}return a;}int main(){int (*b)[10];

/*函数返回指向数组的指针*/

b=retArray();

/*打印第一个元素*/

printf("%d/n",(*b)[0]);

/*释放空间*/free(b);return 0;}第二种方法:

如果你不喜欢用指针的形式返回数组,那么可以采用返回一个结构的形式。这种形式相对较安全,可以避免忘记释放指针而造成内存泄露,也可以避免访问悬挂指针造成的错误。但缺点是由于结构是先拷贝再返回,因此如果结构较大时,会影响效率和占用较大内存。

例子如下:#includestruct tag{int a[10];}x,y;struct tag retArray(){int i=0;for(i=0;i<10;i++)

x.a[i]=i;return x;}int main(){struct tag y=retArray();

printf("%d/n",y.a[3]);return 0;}注意:(1)在返回指针时要切记要避免内存泄露和访问悬挂指针。

(2)很多人认为指针和数组等价的,这是错误的。int (*a)[10]和int b[10]两者是不能直接用a=b来赋值的。在数组和指针作为函数参数传递时,二者可以认为等价,这是因为数组会被转化为指针来传递。

(3)返回多维数组方法类似。

本文地址:https://www.39baobao.com/show/29_46644.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

c语言的函数返回值所谓返回值,就是人们想要知道函数或者程序所得到 的结果而设计的函数或者程序结束时给出一个值。比如:我们编写一个加法函数,肯定想知道加完过后的结果是什么,那么我们就指定这...

C语言函数返回值递归调用int fun(int n) 定义函数fun {if (n>1) return n*fun(n-1); 如果n>1,函数返回值为n*fun(n-1) else return 1; } 否则为1; main() 主函数 {int i,s=0; 整型i,s,其中s=0 for(i=1;i<=...

如何用C语言实现调用函数的返回值为一数组的地址就是返回一个数组的地址,比如: int* Fun(int pArray[]) { return pArray; } int pArray[] 作为参数和 int *是一样的 因为不能返回局部变量 函数的返回地址就是形参的 你要知...

C语言返回指针的函数问题返回指针 要看这个局部指针变量在函数运行后 保存了哪个空间的地址了 指针里的值是可以返回的 就像你说的 “ return i,主调函数知道一个i就可以了 ” 同样主函数 知道一个指...

C语言返回指向数组的指针的函数第二种方法是因为类型不匹配(double*与(double(*)[ROW])产生错误,而且 ((double (*)[row])matrix); 里的[row]是一个变量,而指向数组的指针 double (*matrix)[ROW]里的ROW只能使...

C语言中关于数组名作为函数参数方面的问题不知道你说的第2,4,5语句对应的是什么。。。。 帮你解释为什么是1: 1. 当你调用fun(a,b,s); 传进的参数实际上是:&a[0], &b[0], s变量的值(实际上也就是&a[0]) 2. 现在我们把fu...

关于c语言中数组作为函数参数的函数之间调用问题1、新建一个数组作为参数项目,如图所示: 2、添加一个array.c文件,如图所示: 3、包含stdio.h和stdlib.h头文件,如图所示: 4、输入main函数主体及返回值,如图所示: 5、定义一个数...

C语言。数组排序函数数组函数排序//#include "stdafx.h"//vc++6.0加上这一行. #include "stdio.h" void Sort(int *p,int n){ int i,j,k; for(i=0;i<10;i++){ for(k=i,j=i+1;j<10;j++) if(p[k]>p[j]) k=j; if(k!...

C语言中返回函数的作用Return 就是返回值,可以返回指针 或者其他数据类型,这个根据你被调用这个函数的功能, 例如 main 函数中经常返回0,main函数是系统调用函数,开启一个进程,返回0 表示进程正常终止,...