구조체 배열 arr의 원소 arr[i]는 구조체 포인터가 아니라 그냥 구조체형 변수 아닌가요?
7568번 - 덩치
구조체 배열 arr의 원소 arr[i]는 구조체 포인터가 아니라 그냥 구조체형 변수 아닌가요?
arr이 struct people* 이고 arr[i] == *(arr+i) 이므로 arr[i]의 자료형은 struct people이 됩니다.
말씀하신대로 arr[i]는 포인터가 아닙니다. 왜냐하면, (제 설명이 틀릴 수도 있지만) arr을 struct people*로 선언하셨기 때문에
arr[i] == *(arr+i), 즉 arr[i]는 포인터를 역참조한 값이 됩니다. 따라서 arr[i]의 자료형은 struct people입니다.
그래서 "."연산자를 써서 멤버에 접근하는 게 맞습니다.
댓글을 작성하려면 로그인해야 합니다.
brenda524 3년 전
구조체형 포인트를 사용하는 경우 참조할 때, -> 화살표를 이용하여 arr->x 로 작성한다고 알고 있습니다.
그런데 아래에서는 &arr[i].x로 작성하여 코딩에 성공하였는데, 여기서 이와 같이 사용해도 되는 이유가 무엇인지 궁금합니다.