48.6 연습문제: typedef로 좌표 구조체 정의하기

다음 소스 코드를 완성하여 2차원 좌표 x, y를 표현하는 구조체를 정의하고, 10 20이 출력되게 만드세요. 좌표의 자료형은 int입니다.

practice_typedef_struct.c

#include <stdio.h>


typedef______________
_____________________
_____________________
_____________________

int main()
{
    Point2D _____;

    p1.x = 10;
    _______________

    printf("%d %d\n", p1.x, p1.y);

    return 0;
}

실행 결과

10 20

정답


typedef struct _Point2D {
    int x;
    int y;
} Point2D;

 p1
 p1.y = 20;

해설

변수를 선언할 때 struct 키워드 없이 Point2D만 사용하고 있으므로 Point2D는 구조체 별칭입니다. 따라서 struct 키워드를 사용하여 구조체를 정의하면서 구조체 별칭을 만듭니다. 그리고 x, y의 자료형은 int라고 했으므로 멤버는 int x; int y;로 선언합니다.

구조체 변수는 p1을 사용하고 있으므로 Point2D p1;과 같이 구조체 별칭으로 변수를 선언합니다. 그리고 20을 출력해야 하므로 p1에 점을 사용하여 y에 접근한 뒤 20을 할당합니다.