ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 포인터와 구조체
    Dev Language/C 2008. 9. 1. 20:44
    struct _point p1, *ps;

    p1 : 8byte
    ps : 4byte
    &p1 : 4byte (p1의 주소)
    &p2 : 4byte (포인터 변수 ps의 주소)
    *p1 : X
    *ps : 8byte
    p1.x, p1.y : p1의 멤버변수를 의미, 4byte(x,y가 int라면)
    &p1.x, &p1.y : "."이 "&"보다 우선순위가 높다.

    ps->x, ps->y : 멤버 메모리(x, y)를 의미

    &ps->x, &ps->y : "->"이 "&"보다 우선순위가 높다. ps가 가리키는 구조체 메모리의 멤버인 x,y 메모리(변수)의 주소를 의미.

    *ps.x : "."이 "*"보다 우선 순위가 높음. ps.x에 먼저 접근, ps가 구조체의 주소이므로 error

    (*ps).x : (*ps)는 ps가 가리키는 구조체의 메모리를 의미하며 (*ps).x는 구조체 메모리의 멤버인 x 메모리(변수)를 의미 4byte(int형)

    - 출처 : C포인터, 공동환 p211 -

    댓글

Written by Skymaker.