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

转: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];
【c语言函数传入二维数组 c语言怎么传递二维数组】};
printf("\n");
};
}
调用: fun(a,b); 即可 。
C语言中 指针做函数参数传递二维数组C语言中
指针做函数参数传递二维数组有两种基本方法:
1、传递“数组指针”
#include stdio.h
void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组
{
int i,j;
for( i=0;in;i++ ){
for( j=0;j3;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;irow;i++ ){
for( j=0;jcol;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;i2;i++ )
pa[i]=a[i];
output(pa, 2, 3);
}
C语言中,如何手动输入二维数组C语言中,如何手动输入二维数组?c语言的数组是非常重要的内容,特别是二维数组的内容,所以今天就由小编来为大家介绍c语言怎么创建一个二维数组 。
工具原料c语言电脑
方法/步骤分步阅读
1
/6
第一首先在电脑上打开c语言编程软件 。
然后创建项目 。
2
/6
第二然后导入stdio.h和stdlib包 。
再加入malloc包 。
3
/6
第三然后定义五个参数 。
再创建其中两个参数的空间 。
4
/6
第四然后用for语句进行循环 。
再用scanf语句进行接收输入到二维数组 。。
5
/6
第五然后用两个for语言循环 。
再输出二维数组的数值 。
6
/6
第六然后用printf语句进行数据输出分格 。
这样一个二维数组就创建成功了 。
注意事项
个人经验,仅供参考 。
内容仅供参考并受版权保护
扩展内容:
二维数组:
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式] 。二维数组又称为矩阵,行列数相等的矩阵称为方阵 。对称矩阵a[i][j] = a[j][i] , 对角矩阵:n阶方阵主对角线外都是零元素 。
二维数组A[m][n],这是一个m行,n列的二维数组 。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p , 列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:LOC(a[i][j]) = LOC(a[p][q]) + ((i ? p) * n + (j ? q)) * t,按“列优先顺序”存储时,地址计算为:LOC(a[i][j]) = LOC(a[p][q]) + ((j ? q) * m + (i ? p)) * t , 存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节 。

推荐阅读