如何使用内存迭代C中的结构?

我对C lang很好,并且一直在从事我一直坚持的项目。这是我的下面的代码

#include <stdio.h>

typedef struct{
int age;
int zipcode;
} person;

int main()
{
int age = 45;
int zipcode = 45035;
person person_1 = {.age = age, .zipcode = zipcode};

age = 89;
zipcode = 20941;
person person_2 = {.age = age, .zipcode = zipcode};

age = 41;
zipcode = 39290;
person person_3 = {.age = age, .zipcode = zipcode};

age = 50;
zipcode = 92749;
person person_4 = {.age = age, .zipcode = zipcode};


age = 13;
zipcode = 78500;
person person_5 = {.age = age, .zipcode = zipcode};

person* y[5] = {&person_1, &person_2, &person_3, &person_4, &person_5};


int* pt = &y;
printf("this is addr %d\n", y);
printf("this is pt %d\n", *pt);
for(int i =0; i < 5; i++)
{
    person current = pt;
    printf("%d\n", current.age);
    printf("%d\n", current.zipcode);

    pt+=1;
}

}

我想对指针变量pt做一些事情。我试图访问我的struct arr中第一项的存储位置,以便可以在数组中移动并显示其中的所有内容。我知道在这种情况下不使用指针可能会更简单,但是我将在文件中使用此代码,因此我认为这样做会使整个过程更容易。