当前位置:首页 » 编程语言 » c语言传二维数组

c语言传二维数组

发布时间: 2022-06-19 12:57:38

c语言 二维数组传递参数

二维数组传递给函数的时候,有两种方式,一种是a[][6],一种是(*a)[6],这里的6是不能省略的,不然编译器不知道如何通过加多少来偏移这个指向数组的指针。

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

C语言中
指针做函数参数传递二维数组有两种基本方法:1、传递“数组指针”<pre
t="code"
l="cpp">#include
<stdio.h>
void
output(
int
(*pa)[3],
int
n
)//这个函数只能输出n行3列的二维数组
{
int
i,j;
for(
i=0;i<n;i++
){
for(
j=0;j<3;j++
)
printf("%d
",
pa[i][j]
);
printf("\n");
}
}
void
main()
{
int
a[2][3]={
{1,2,3},
{4,5,6}
};
output(a,2);
}2、传递“指针数组”
先将二维数组的行指针存储到一个指针数组中,再将指针数组传递到子函数中去。<pre
t="code"
l="cpp">#include
<stdio.h>
void
output(
int
*pa[],
int
row,int
col
)
//这个函数更通用,但调用前,要做好准备工作。
{
int
i,j;
for(
i=0;i<row;i++
){
for(
j=0;j<col;j++
)
printf("%d
",
pa[i][j]
);
printf("\n");
}
}
void
main()
{
int
a[2][3]={
{1,2,3},
{4,5,6}
};
int
i;
int
*pa[2];
for(
i=0;i<2;i++
)
pa[i]=a[i];
output(pa,
2,
3);
}

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

函数原型 type fun (type (name*)[size])

type是你要定义的类型,fun是函数名,name是在函数中二维数组的名字,
size是二维数组第2维的长度。
这样调用这个函数只需要把二维数组函数名传递就可以了。

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

在C语言中可以用二维数组作为实参或者形参。


1、函数中用二维数组作为形参,函数声明中可以指定所有维数的大小,也可以省略第1维的维数如:

voidf(intarray[3][10]);//正确
voidf(intarray[][10]);//正确

上面的两种二维数组形参表示都是正确的。


2、函数中用二维数组作为形参,不能把第2维或者更高维的大小省略,如下面的定义是不合法的:

voidf(intarray[][]);//错误

因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:

voidf(intarray[3][]);//错误

3、二维数组作为实参传递时,必须保证实参第2维的维数与形参第2维的维数相同,因为必须要保证形参和实参的数据类型一致。比如定义如下函数:

voidf(intarray[][10]);

可以将如下数组传递给函数f。

inta[2][10]={1,2,3,4};
intb[4][10]={1};

⑤ C语言:二维数组 形参传值写法

编译器实际处理多维数组是把一维数组分段处理的,也就是说实际上并不存在多维数组,多维数组仅仅是个逻辑概念。
例如下面这个:
int fun(int a[2][3],int n);

或者
int fun(int a[][3],int n);
要指出列数是多少,行数写不写都一样,行数要通过n进行传递。

假设
int b[2][3]={};
则调用的时候可以写:
fun(b,2);

⑥ C语言 传递二维数组 急

既然是全局变量数组,那么就直接用就行了,不需要作为参数和返回。
全局变量申明时放在所有函数的之前,然后再ini()函数直接改,在display()中直接用就行。

⑦ c语言二维数组传值

多维数组传递,n要为固定大小,void p( arr[][5] );
int arr[2][5];

p(arr);

来自下面网址

网页链接

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

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

char arry[][4] ;
Func(arry);

⑨ C语言中 指针做函数参数传递二维数组

C语言中
指针做函数参数传递二维数组有两种基本方法:
1、传递“数组指针”
#include <stdio.h>
void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组
{
int i,j;
for( i=0;i<n;i++ ){
for( j=0;j<3;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
output(a,2);
}
2、传递“指针数组”
先将二维数组的行指针存储到一个指针数组中,再将指针数组传递到子函数中去。
#include <stdio.h>
void output( int *pa[], int row,int col ) //这个函数更通用,但调用前,要做好准备工作。
{
int i,j;
for( i=0;i<row;i++ ){
for( j=0;j<col;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
int i;
int *pa[2];
for( i=0;i<2;i++ )
pa[i]=a[i];
output(pa, 2, 3);
}

热点内容
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:479
php查询结果数组 发布:2025-02-06 12:31:05 浏览:714
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:496
如何编译java文件 发布:2025-02-06 12:05:58 浏览:237
九九乘法编程 发布:2025-02-06 12:05:05 浏览:519
台式机忘记开机密码怎么办 发布:2025-02-06 11:58:01 浏览:871
android刷新按钮 发布:2025-02-06 11:57:17 浏览:586
存储过程有输入参数和输出参数 发布:2025-02-06 11:55:32 浏览:99
成绩评选算法 发布:2025-02-06 11:42:51 浏览:997
数据库测试数据 发布:2025-02-06 11:31:05 浏览:824