传递二维数组
固定行列,直接传递地址
#include
#include
void Print(int array[3][3])
{
printf("\n");
for(int i=0;i
printf("%d ",array[i][j]);
}
printf("\n");
}
printf("\n");
}
int main()
{
int a[3][3]={0};
for(int i=0; i
printf("\n");
for(int i=0;i
printf("%d ",array[i][j]);
}
printf("\n");
}
printf("\n");
}
int main()
{
int rows = 3;
int cols = 3;
int** numbers = new int*[rows];
for(int i=0; i
numbers[i][j] = i*cols+j+1;
}
}
Print(numbers, 3, 3);
return 0;
}
传递首地址,给出行、列
#include
#include
void Print(int* array, int n, int m)
{
printf("\n");
for(int i=0;i
printf("%d ",*(array+i*m+j));
}
printf("\n");
}
printf("\n");
}
int main()
{
int a[3][3]={0};
for(int i=0; i
scanf("%d",&a[i][j]);
}
}
Print(*a, 3, 3);
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190224145302355.png)
注意:当定义一个[100]100]的二维数组,但是只用了其中的左上角[10][10],将二维数组地址作为参数传递给函数的时候,在函数形参中,定义参数列表的时候(比如以上两种方法),一定要已[100][100]定义,不能以[10][10]定义,由于地址的连续性([100][100]中存了的数据是不连续的)会导致访问数据错误。
|