• 개념

    사용자가 정의하는 데이터 형식

    쉽게 생각하면 우리가 성인이 되면 받는 주민등록증 처럼 주민등록번호, 이름, 주소, 발급일자 등을 입력 저장하는 역할을 한다고 생각하면 된다.

  • 구성

    필드 또는 멤버인 변수로 구성

    단, void 형은 사용할 수 없다.

  • 구조체 형식

    struct 태그{
    	멤버;
    };
    

    ▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽

    struct POINT{
    	int x;
    	int y;
    };
    
    • 태그 tag : 구조체 식별자, 구조체 형식 이름 대문자 사용(관례)
  • 구조체 라는 것은 우리가 정의하는 데이터 형이라고 생각하면 된다.

    데이터 형을 사용하기 위해서는 구조체 변수를 선언을 해야한다.

  • 구조체 선언1

    • 일반 변수 선언과 동일
    struct POINT{
    	int x;
    	int y;
    };
    

    struct POINT point;

    struct POINT point[3], *ppoint;

     데이터형
    
  • 구조체 선언2

    • 구조체 정의와 변수 선언을 동시에 하는경우
    struct POINT{
    	int x;
    	int y;
    } point, *ppoint, PointArray[3];
    
    point.x = 10;
    point.y = 20; // 등...
    
  • 멤버 접근 연산자 : . , ->

    • 변수 선언인 경우 (' . ' dot 사용)

      struct POINT point;
      point.x = 20;
      point.y = 10;
      
    • 포인터 선언인 경우(' -> ' 사용)

      struct POINT *ppoint, point;
      ppoint - &point;
      ppoint->x = 10;
      ppoint->y = 20;
      
  • 다양한 구조체 변수 선언

    struct POINT point;
    struct POINT *ppoint;
    struct POINT pointXY[3];
    
    pintXY[0].x = 10;
    pintXY[0].x = 20;
    pintXY[1].x = 30; // 등
    
    // 일반 변수와 동일하게 사용 및 선언