二维数组和指针

本文探讨了二维数组与指针在C语言中的表示和使用,通过示例解释了二维数组如何作为参数传递。主要内容包括:二维数组的表示、一维数组与二维数组的区别、指针在数组中的作用,以及如何声明和使用指向二维数组的指针。重点解析了void Show(int (*brr)[4])这样的函数参数表示法。

二维数组和指针的表示含义
例:
void Show()
{
for(int i = 0;i<3;i++)
{
for(int j = 0;i<4;j++)
{
printf("%3d",brr[i][j]);
}
printf("\n");
}
}
int mian()
{
int arr[3][4]={1,2,3,4,5,6,7,8,9,10};
Show(arr);
return 0;
}
int brr[4]={1,2,3,4}
int *p=brr;
怎样传二维数组的参数?
如果是一维数组的话,可以参数可以为int arr;但为二维,有点特殊。
在一维数组中arr可以代表数组名,同时也可以表示为数组的首个元素的地址即
arr。
先定义一个长度为4的一维数组int brr[4]和二维数组的分布;
如图:
在这里插入图片描述
比较一位数组与二维数组的不同:
在这里插入图片描述
一维数组的brr可以作为指针,同样arr也可以当指针,但二维数组arr作为指针的话,先把数组分为三大块如图中的红,黄,紫,看成是三个一维数组,即为一整行.所以arr表示的类型为int(*p)[4]数组指针,(*p)表示为指针类型,如果不加"()"就变为int * p[4],而 [] 比 * 的优先级高,相当于int * (p[4]),所以就成为保存数组的指针,即数组指针。arr+1为指针加一同样也是指针,arr[0]相当于一维数组的brr[0],brr[0]相当于brr,而brr又是指针类型,所以arr[0]同样也是指针int *p类型,同理arr[0]+1,与一位数组的brr+1相同,也是int * p类型。arr[0][[0]表示里面的元素值,arr[0][0]+1表示元素值加一。
所以传参数可以写为void Show(int (*brr)[4])
int (*p)[4]:指向一个长度为4的整型数组的指针。数组指针。
int * p[4]:保存指针的数组。指针数组。
int * Fun():返回指针函数。指针函数。
int (*f)():指向函数的指针。函数指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值