二维数组的使用和一维数组无大区别,在函数传参注意以下几点:
1.数组元素作为函数的参数时,传递的是值。
2.数组名作为函数的参数时,传递的是数组的首地址。
在传递过程中,要保证类型和长度一致。
下面是一个小例子,巩固知识。调用二维数组的初始化i*j函数以及二维数组的遍历函数
- //二维数组的初始化i*j函数
- void initAr(int m,int n,int a[m][n]){
- for (int i = 0; i < 5; i++){
- for (int j = 0; j < 3; j++){
- a[i][j] = i*j;
- }
- }
- }
- //二维数组的遍历函数
- void printAr(int m, int n, int a[m][n]){
- for (int i = 0; i < 5; i++){
- for (int j = 0; j < 3; j++){
- printf("%d\n",a[i][j]);
- }
- }
- }
- int main(int argc, char *argv[])
- {
- //定义变量
- int m, n;
- //输入并接收用户输入的值
- printf("请输入数组的行数和列数,用逗号分隔:\n");
- scanf("%d,%d",&m,&n);
- int ar[m][n];//构建数组,在xcode可以实现,接收变量
- //调用初始化函数
- initAr(m,n,ar);
- //调用遍历函数
- printAr(m, n, ar);
- return 0;
- }
复制代码 |
|