本文将介绍几个打印数组内容的方法,其中会涉及到指针的应用,方便加深大家对指针的理解。
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
int sz = sizeof(arr) / sizeof(arr[0]);
//print1(arr, sz);
//print2(arr, sz);//打印arr数组的内容
//print3(&arr, sz);
return 0;
}
首先我们创建一个数组,然后使用编写不同的函数来实现打印数组的不同方法。
方法1:也是我们最常见的方法,直接在函数参数中使用数组
void print1(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}
方法2:原理跟方法1一样,但这次函数参数我们使用指针,将数组首元素地址传过去
void print2(int* arr, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", *(arr + i));
}
}
方法3:使用数组指针的方式,我们将整个数组地址存在一个数组指针中,将整个数组地址作为参数调用,注意!!在此方式中我们也可以有不同的方法来打印数组
void print3(int (*parr)[10], int sz)
{
//*(parr + 0);//parr[0]+
int i = 0;
for (i = 0; i < sz; i++)
{
//printf("%d ", parr[0][i]);
//printf("%d ", (*(parr + 0))[i]);
printf("%d ", (*parr)[i]);//(*parr) 相当于 parr指向的数组的数组名
}
}
我们尝试使用不同方法来打印二维数组,同样的我们先创建一个二维数组,再在不同函数中实现不同方法打印数组。
int main()
{
int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6,3,4,5,6,7 };
print1(arr, 3, 5);
print2(arr, 3, 5);
return 0;
}
方法1:跟传统方法一样,我们在形式参数中使用一个二维数组
void print1(int arr[3][5], int r, int c)
{
int i = 0;
for (i = 0; i < r; i++)
{
int j = 0;
for (j = 0; j < c; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
方法2:我们使用数组指针的方式,将数组首元素地址传给int (*p)[5],形成一个二维数组
void print2(int(*p)[5], int r, int c)
{
int i = 0;
for (i = 0; i < r; i++)
{
int j = 0;
for (j = 0; j < c; j++)
{
//printf("%d ", *(*(p + i) + j));
printf("%d ", p[i][j]);
}
printf("\n");
}
}
本文到此结束,感谢大家的阅读,欢迎点赞评论互关,祝大家万事如意。