打印一维数组几种打印方法
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int i = 0;
int* p = arr;
for (i = 0;i < 10;i++)
{
printf("%d", *(p + i));
printf("%d", *(arr + i));
printf("%d", arr[i]);
printf("%d", p[i]);
}
return 0;
}
也就是说p = arr;
*(p + i) = *(arr + i) = arr[i] = p[i];
打印二维数组的几种方法
1、
二维数组首元素的地址就是第一行元素的地址
引用数组指针的概念来解
int (*p)[5] = arr 第一行数组元素的地址。
//参数是指针的形式
void print2(int (*p)[5],int x, int y)
{
int i = 0;
for (i = 0;i < x;i++)
{
int j = 0;
for (j = 0;j < y;j++)
{
printf("%d", *(*(p + i) + j));
printf("%d", (*(p + i))[j]);
printf("%d",p[i][j]);
//printf("%d",arr[i][j]);
printf("%d",*(p[i]+j));
}
printf("\n");
}
}
int main()
{
int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
//int(*p)[3][5] = &arr;
//print1(arr,3,5);
print2(arr, 3, 5);
return 0;
}