别摸我的键盘 的学生作业:
int a[2][3] = {10,20,30,40,50,60};
int (*p)[3] = a;
要求通过多种方式输出a数组中的数据
#include
#define M 2
#define N 3
int main(){
int a[M][N] = {10,20,30,40,50,60};
int (*p)[N] = a;
printf("===========a[i][j]===========\n");
for(int i = 0; i < M; i++){
for(int j = 0; j < N; j++){
printf("%d ", a[i][j]);
}
}
printf("\n");
printf("===========*(a[i] + j)===========\n");
for(int i = 0; i < M; i++){
for(int j = 0; j < N; j++){
printf("%d ", *(a[i] + j));
}
}
printf("\n");
printf("===========*(*(a + i) + j)===========\n");
for(int i = 0; i < M; i++){
for(int j = 0; j < N; j++){
printf("%d ", *(*(a + i) + j));
}
}
printf("\n");
printf("\n");
printf("===========p[i][j]===========\n");
for(int i = 0; i < M; i++){
for(int j = 0; j < N; j++){
printf("%d ", p[i][j]);
}
}
printf("\n");
printf("===========*(p[i] + j)===========\n");
for(int i = 0; i < M; i++){
for(int j = 0; j < N; j++){
printf("%d ", *(p[i] + j));
}
}
printf("\n");
printf("===========*(*(p + i) + j)===========\n");
for(int i = 0; i < M; i++){
for(int j = 0; j < N; j++){
printf("%d ", *(*(p + i) + j));
}
}
printf("\n");
return 0;
}
输出
===========a[i][j]===========
10 20 30 40 50 60
===========*(a[i] + j)===========
10 20 30 40 50 60
===========*(*(a + i) + j)===========
10 20 30 40 50 60
===========p[i][j]===========
10 20 30 40 50 60
===========*(p[i] + j)===========
10 20 30 40 50 60
===========*(*(p + i) + j)===========
10 20 30 40 50 60