二维数组作函数参数

二维数组名作为参数传递使用时,形参要定义为数组指针的形式:

二位数组名就是数组指针类型

int func(int (*p)[n],int len1,int len2)

n一定要是一个常数值,即指明数组指针变量指向有几个元素的一维数组

一维数组名和二位数组名的比较

一维数组数组名类型是指针:

int arr1[10];

arr1-----int *

二维数组数组名类型是数组指针(而且必须指明一维数组元素个数):

int arr2[2][10];

arr2-----int (*)[2]

一维数组名本身就是第0个元素的首地址,指向的是首个元素

arr1+1,地址跳到下一个元素地址,

<一维数组名步长是元素步长>

二维数组名本身是一个数组指针,指向的是第一行的一维数组

arr2+1,指向下一行

<二位数组名步长是整行的步长>

二维数组作函数参数使用的两种方式:

int arr[][3]={1,2,3,4,5,6,7,8,9};
        display1(arr[0],9);
        display0(arr,3,3);
 

1,二维数组拆分为多个连续的一维数组(二维数组存储每一个元素本来就是连续存储),传递

传递这些连续内存的第一个地址

void display1(int* p,int len)
{       
        int i,j;
        for(i=0;i<len;i++)
        {         
                  printf("%d\n",*p);
                  p+=1;
        }
}
 

2,在理解了二维数组名的类型之后,直接传递二维数组名

void display0(int (*p)[3],int len1,int len2)
{
        int i,j;
        for(i=0;i<len1;i++)
        {
                for(j=0;j<len2;j++)
                {
                        printf("%d\t",p[i][j]);

                        //printf("%d\t",*(*(p+i)+j))
                }
                printf("\n");
        }
}
 

  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值