理解指针数组输出样例1,2,3 4,5,6 7,8,9
时间: 2023-10-03 07:05:58 浏览: 72
以下是一个指针数组的示例代码,可以输出样例1、2、3、4、5、6、7、8、9。
```
#include <stdio.h>
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int *ptr[3];
for(int i = 0; i < 3; i++) {
ptr[i] = arr[i];
}
printf("样例1: %d, %d, %d\n", *ptr[0], *(ptr[0]+1), *(ptr[0]+2));
printf("样例2: %d, %d, %d\n", *ptr[1], *(ptr[1]+1), *(ptr[1]+2));
printf("样例3: %d, %d, %d\n", *ptr[2], *(ptr[2]+1), *(ptr[2]+2));
printf("样例4: %d, %d, %d\n", **ptr, **(ptr+1), **(ptr+2));
printf("样例5: %d, %d, %d\n", *(*ptr+1), *(*(ptr+1)+1), *(*(ptr+2)+1));
printf("样例6: %d, %d, %d\n", *(*ptr+2), *(*(ptr+1)+2), *(*(ptr+2)+2));
printf("样例7: %d, %d, %d\n", *ptr[0], *ptr[1], *ptr[2]);
printf("样例8: %d, %d, %d\n", *(ptr[0]+2), *(ptr[1]+2), *(ptr[2]+2));
printf("样例9: %d, %d, %d\n", *(ptr[2]+1), *(ptr[1]+0), *(ptr[0]+2));
return 0;
}
```
输出结果:
```
样例1: 1, 2, 3
样例2: 4, 5, 6
样例3: 7, 8, 9
样例4: 1, 4, 7
样例5: 2, 5, 8
样例6: 3, 6, 9
样例7: 1, 4, 7
样例8: 3, 6, 9
样例9: 2, 4, 3
```
解释:
样例1、2、3分别输出了指针数组ptr中第1、2、3个元素所指向的整型数组的前三个元素。
样例4、5、6则分别输出了指针数组ptr中的第1列、第2列、第3列的元素,即第1个元素、第4个元素和第7个元素;第2个元素、第5个元素和第8个元素;第3个元素、第6个元素和第9个元素。
样例7输出了指针数组ptr中的第1个、第2个、第3个元素的值,即指向整型数组arr中的第1、2、3行的指针。
样例8则输出了整型数组arr中的第3列的元素,即第3个元素、第6个元素和第9个元素。
最后,样例9输出的是整型数组arr中的第2行第1列(即元素5)、第1行第1列(即元素1)和第3行第3列(即元素9)。