c语言传递二维数组
‘壹’ c语言中如何将二维字符数组作为函数参数引用传递
不可能达到目的。因为C语言中没有引用这类型,C++才有。另,C/C++都不支持传递数组,只能传递数组的首元素或行指针,所以即使是C++,也只能传递数组指针的引用,而不可能传递数组的引用,因为数组没有引用。
‘贰’ C语言 二维数组传递参数
二维数组传递给函数的时候,有两种方式,一种是a[][6],一种是(*a)[6],这里的6是不能省略的,不然编译器不知道如何通过加多少来偏移这个指向数组的指针。
‘叁’ 在C语言中定义了一个二维数组,要用它的数组名作为参数传递的时候应该怎么写
在传递2维及以上数组时,只有最高维的下标可以省略。否则编译器是无法判断你给出的数组是什么样的
‘肆’ 怎么给函数传二维数组的指针”
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);}
‘伍’ C语言中 指针做函数参数传递二维数组
#include <stdio.h>
void fun(int (*p1)[3],int (*p2)[3]);
int main()
{
int p1[3][3]={{7,8,9},{4,5,6},{1,2,3}} ;
int p2[3][3] = {0};
int i = 0, j = 0;
fun(p1,p2);
for(i = 0;i < 3;i++){
for(j = 0;j < 3;j++){
printf("%d ",*(*(p2+i)+j));
}
printf(" ");
}
return 0;
}
void fun(int (*p1)[3],int (*p2)[3])
{
int i = 0,j = 0;
for(i = 0;i < 3;i++){
for(j = 0;j < 3;j++){
*(p2[j]+i) = *(p1[i]+j);
}
}
}
(5)c语言传递二维数组扩展阅读:
函数指针的声明方法为:
返回值类型 ( *指针变量名) ([形参列表]);
其中,“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
或者使用下面的方法将函数地址赋给函数指针:
f = &func;
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。
网络-函数指针
‘陆’ c语言如何传递多个二维数组
二维数组即数组元素为数组的数组,数组在函数传参时,为了避免复制,会自动转成指向数组第1个元素的指针,二维数组在传参时,会转成一个指向数组的指针
所以声明是fun(int (*a)[N])当然写成fun(int a[][N])也行,因为实际是int(*)[N]这种类型,所以建议就这么写。
调用就直接转一个int a[x][N]类型的数组即可。
定义就是多一个函数体,必须有形参的名字。
‘柒’ 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语言,函数传递二维数组问题
改成这样
void test(char *a)
{
printf("%c", *(a+2)+1);
}
‘玖’ c语言函数怎么传入一个二维数组
这样传:
函数声明:Func(变量类型 *[二维数组的列长] arry);
char arry[][4] ;
Func(arry);
‘拾’ c语言二维数组传值
多维数组传递,n要为固定大小,void p( arr[][5] );
int arr[2][5];
p(arr);
来自下面网址
网页链接