二维数组和指针的表示含义
例:
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)():指向函数的指针。函数指针。
二维数组和指针
最新推荐文章于 2025-10-27 22:07:46 发布
本文探讨了二维数组与指针在C语言中的表示和使用,通过示例解释了二维数组如何作为参数传递。主要内容包括:二维数组的表示、一维数组与二维数组的区别、指针在数组中的作用,以及如何声明和使用指向二维数组的指针。重点解析了void Show(int (*brr)[4])这样的函数参数表示法。
911

被折叠的 条评论
为什么被折叠?



