hyfm.net
当前位置:首页 >> C语言函数中怎么返回一个二维数组 >>

C语言函数中怎么返回一个二维数组

#include <stdio.h>int *_print(int (*_pointer)[2],int n);void main(void){ int demo[2][2]={{1,2},{3,4}}; int *p,row; printf("请输入行号:"); scanf("%d",&row); p=_print(demo,row); // 实参是二抄维数组名 printf("%d\n",*(p+1)); // 输出row行1列

不能返回数组,可以反回数组的首地址,也就是返回指针 至于数组的大小可以设置一个输出型变量指针,在调用函数的时候传到函数里,做一下记录.

二维数组和一维数组的存储都是线性存储,返回存储首地址就可以了,访问的时候按你自己约定的字符串长度去访问就行了.#define row 5#define column 20typedef char (*mystr)[20];int main(int argc, char *argv[]){ char arr[row][column] = {"string

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; }

return 就直接返回可以了 不用return 就将二维数组的指针或者引用作为参数

返回一个指针:int **a(void){ static int c[5][5]={0}; return c;}

动态分配一块内存,返回指针.或者调用函数之前分配好内存,将指针传递给函数,通过指针,将数组写入,比较推荐这种方法.或者通过全局变量 .

int (*)[3] creatmatrix(void) //二维数组只能这样返回类型 { static int a[3][3]; //需要定义成静态才不会丢失 printf("pelease input data"); for(int i=0;i<3;i++) for(int j=0;j<3;j++) { scanf("%d",&a[i][j]); //----整数是%d } return a; }; int main() { int (*p)[3]=creatmatrix(void); return 0; }

C语言中函数不能直接返回一个二维数组.但是可以通过其他方法实现类似功能: 一、把二维数组定义为全局变量 这样可以直接在另一个函数中调用 二、把二维数组作为指针传入到第一个函数中 然后同样作为指针传到另一个函数中 三、动态分配内存 在赋值函数中动态分配 并用返回值返回,在另一个函数中进行访

网站首页 | 网站地图
All rights reserved Powered by www.hyfm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com