#include<stdio.h>
#define MONTHS 12
#define YEARS 5
void copy_arr( double ar[][12], double ar_1[][12], int n);
void copy_ptr( double ar[][12], double ar_1[][12], int n);
void copy_ptrs(const double ar[][12], double ar_1[][12], double(*n)[12] );
void print_1(const double ar[][12], int n);//输出数组
int main(void)
{
double rain[YEARS][MONTHS] = {
{4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6,1},
{4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6 ,1},
{4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6 ,1},
{4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6,1 },
{4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6 ,1}
};
double a_1[5][12];
double a_2[5][12];
double a_3[5][12];
copy_arr(rain, a_1, 5);
copy_ptr(rain, a_2, 5);
copy_ptrs(rain, a_3, rain + 5);
printf("第一个\n");
print_1(rain , 5);
printf("第二个\n");
print_1(a_1, 5);
printf("第三个\n");
print_1(a_2, 5);
printf("第四个\n");
print_1(a_3, 5);
return 0;
}
void copy_arr(double ar[][12], double ar_1[][12], int n)
{
int i = 0, j = 0;
for (i = 0; i < n; i++)
for (j = 0; j < 12; j++)
ar_1[i][j] = ar[i][j];
}
void copy_ptr(double ar[][12] ,double ar_1[][12], int n)
{
int i = 0, j = 0;
for (i = 0; i < n; i++)
for (j = 0; j < 12; j++)
*(ar_1[i]+j) =* (ar[i]+j);
}
void print_1(const double ar[][12], int n)
{
for (int i = 0; i < n; i++)
{
for(int j = 0;j<12;j++)
printf("%2.1f ", *(*(ar+i)+j));
printf("\n");
}
}
void copy_ptrs(const double ar[][12], double ar_1[][12], double(*n)[12])
{
while (ar < n)
{
for (int j = 0; j < 12; j++)
{
*(*ar_1 + j) = *(*ar + j);
}
ar++;
ar_1++;
}
}