C : Accessing Structure Members

m_ngyeong·2024년 10월 15일
0

C

목록 보기
14/16
post-thumbnail

Structure(구조체)


Accessing Structure Members

화살표(->) 연산자(Pointer access)

화살표 접근(Pointer access)은 C와 C++에서 구조체 포인터를 통해 구조체의 멤버에 접근할 때 사용하는 연산자이다. -> 연산자를 사용하며, 이를 "화살표 연산자" 또는 "화살표 접근"이라고 부른다.

구조체 포인터를 통해 구조체의 멤버에 접근하는 상황에서, 간접 접근(dereference)와 멤버 접근을 결합한 방식이다. 이 연산자는 포인터가 가리키는 구조체의 멤버에 쉽게 접근할 수 있게 해준다.

화살표 연산자의 사용 예시

#include <stdio.h>

struct Person {
    char name[50];
    int age;
};

int main() {
    struct Person person1 = {"Alice", 25};
    struct Person *ptr = &person1;

    // 화살표 연산자를 사용하여 구조체 멤버에 접근
    printf("Name: %s\n", ptr->name);
    printf("Age: %d\n", ptr->age);

    return 0;
}
  • 구조체 : struct Person.
  • 구조체의 멤버 : nameage.
  • ptr : person1을 가리키는 구조체 포인터.
  • ptr->name : person1.name에 접근하는 방법과 동일하게, 포인터를 사용하여 person1name 멤버에 접근.
  • ptr->age : person1.age에 접근하는 방법과 동일하게, person1age에 접근.

점(.) 연산자(Direct access)

화살표 연산자를 사용하지 않고도, 포인터가 가리키는 구조체 멤버에 접근할 수 있다. 점 연산자(Direct access)는 구조체 변수를 사용해 멤버에 직접 접근할 때 사용한다. 역참조(dereference)를 먼저 한 후에 점(.) 연산자를 사용해야 한다.

(*ptr).name
(*ptr).age
  • (*ptr) : ptr이 가리키는 구조체를 역참조하는 것이고, 그 다음에 . 연산자를 사용하여 구조체의 멤버에 접근함.

결론

  • 화살표(->) 연산자 = 점(.) 연산자
  • 화살표 접근(->)은 구조체 포인터를 통해 구조체의 멤버에 접근할 때 사용하는 연산자.
  • struct_pointer->memberstruct_variable.member와 동일한 의미로, 포인터가 가리키는 구조체의 멤버에 간단하게 접근할 수 있게 해줌.

화살표 연산자의 편리함:

화살표 연산자는 (*ptr).name처럼 괄호를 여러 번 사용해야 하는 불편함을 줄이기 위해 도입되었다. ptr->name처럼 간단하게 포인터가 가리키는 구조체의 멤버에 접근할 수 있도록 만든 것이다.

profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글