c语言函数引入2维数组 c语言函数怎么传入一个二维数组

c语言函数怎么传入一个二维数组

这样传:

创新互联是一家专业的成都网站建设公司,我们专注网站设计、成都网站设计、网络营销、企业网站建设,卖友情链接一元广告为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。

函数声明:Func(变量类型 *[二维数组的列长] arry);

char arry[][4] ;

Func(arry);

C语言如何在调用函数中输入二维字符数组char c[][] 用gets或 scanf

gets(c[0])输入第一行的字符串

gets(c[1])输入第二行的字符串,以此类推。

scanf("%s",c[0])输入一行的字符串,以此类推。

转:C语言中如何将二维数组作为函数的参数传递

下面例子,作为 指针传递 和 行指针传递。

#include stdio.h

void fun(int *p1,int (*p2)[3], int row, int col){

int i,j;

for (i=0;i3;i++){

for (j=0;j4;j++) {

printf("%d ",p1[i*col+j]);

p2[j][i]=p1[i*col+j];

};

printf("\n");

};

}

int main(){

int a[3][4],b[4][3];

int i,j;

for (i=0;i3;i++)for (j=0;j4;j++) a[i][j]=(i+1)*10+j;

fun(a[0][0],b[0], 3,4);

printf("\n");

for (i=0;i4;i++){

for (j=0;j3;j++) printf("%d ",b[i][j]);

printf("\n");}

return 0;

}

或这样:

void fun(int p1[3][4],int p2[4][3]){

int i,j;

for (i=0;i3;i++){

for (j=0;j4;j++) {

printf("%d ",p1[i][j]);

p2[j][i]=p1[i][j];

};

printf("\n");

};

}

调用: fun(a,b); 即可。

VC++如何在函数中引用一个二维数组

形参和实参只要维数对应就可以了

例如

函数中 proc(int a[][10]) 可以省略第一维的大小,因为c语言编译系统不检查第一维的大小,只要第二维大小相同,形参数组第一维可以与实参不同。

主函数中 先定义了b[][10]

引用时:proc(b)即可

即把2维数组b得首地址即b[0][0]的地址传给形参a,因为数组名本身既是指针常量,所以在函数中对数组a中元素的操作会改变数组b中元素得值。

c语言二维字符数组传入函数的问题

既然只传一行,干嘛要用(*)[]型形参?用char *p或char p[]不就足够了?另外,50x1000000的数组大了点,声明全局数组吧,局部数组不支持。

c语言中怎么用二维数组作为函数参数

二维数组作为函数参数,实参可以直接使用二维数组名,在被调用函数中对形参数组定义可以指定所有维数的大小,也可以省略第一维的大小说明,如:

它们是合法且等价,也可以使用如下形式:

但不能省略第二维的大小,如下面的定义是不合法的,编译时会出错:

因为从实参传递来的是数组的起始地址,如果在形参中不说明列数,编译器将无法定位元素的的位置。


当前文章:c语言函数引入2维数组 c语言函数怎么传入一个二维数组
文章路径:http://myzitong.com/article/hpgjih.html