int main()
{
array<double,season> expense;
fill(&expense);
show(expense);

return 0;
}

void fill(array<double,season> *pa)
{
for(int i=0; i<season; i++)
{
cout<<sname[i]<<"에 소용되는 비용: ";
cin>>(*pa)[i];
}
}

array 객체의 예제소스를 공부하던중 궁금한 부분이 생겨서 질문드립니다
굵은색 부분의 cin>> (*pa)[i] 에서 (*pa) 부분이 왜 나오는지 잘 이해가 가질 않아 드리는 질문입니다.

pa는 포인터이고 expense라는 같은 타입의 객체의 주소를 전달받습니다.
그리고 cin에서 그걸 사용을 하는데 저는 포인터이니 pa[i] 라고 쓰여질줄 알았는데 (*pa)가 쓰이네요..

제가 왜 이렇게 생각하는지 예를들어 설명하자면
int arr[4];
int *ptr=arr;

cout<<ptr[0];
cout<<ptr[1];
.
.
.
이런식으로 포인터는 배열에서 사용하는 연산이 가능하고 배열도 포인터이니 그렇지 않습니까
그래서 저는 그런식으로 생각해서 cin>>pa[i] 이런식으로 될줄알았는데..왜 *pa가 나오는 것이지요?

타입이 arr<double,season> 으로 동일하니 그냥 쉽게생각해서 이 부분을 int형으로 바꿔생각하면 되는 문제인줄 알았는데
아니네요..어떻게 이해해야하나요