【发布时间】:2015-06-16 21:04:03
【问题描述】:
我需要使用指针 Arithmetic 来遍历一个 2D 数组并打印出插入 main 中的坐标点。我似乎无法做到这一点......
`
#include <stdio.h>
void printTriangle(const int printPoints[3][2]);
int main()
{
const int points[3][2];
printf("Enter point #1 as x and y: ");
scanf("%d %d", *(points + 0), *(points + 1));
printf("Enter point #2 as x and y: ");
scanf("%d %d", *(points + 2), *(points + 3));
printf("Enter point #3 as x and y: ");
scanf("%d %d", *(points + 4), *(points + 5));
//printf("%d", points[2][0]);
printf("\nStarting Triangle: ");
printTriangle(points);
}
void printTriangle(const int printPoints[3][2])
{
int *ptr;
ptr = printPoints;
int i = 0;
int j = i + 1;
for (i = 0; i<6;)
{
printf("(%d, %d)", *(ptr + i), *(ptr + i + 1));
i += 2;
}
}
【问题讨论】:
-
究竟是什么不工作?编译错误?输出错误?发布错误或至少预期的结果。
-
使用
&points[2][0]代替*(points + 4),依此类推。它们不是一回事。
标签: c pointers multidimensional-array pointer-arithmetic