[정보처리기사 필기] 프로그래밍 언어 활용 - 105. 구조체

1. 구조체의 개요

  • 배열과 구조체의 차이
    • 배열 : 자료의 형과 크기가 동일한 변수의 모임
    • 구조체 : 자료의 종류가 다른 변수의 모임
  • 구조체의 정의
    • 구조체를 정의한다는 것 : int나 char 같은 자료형을 하나 만드는 것을 의미
    • 'structure(구조)'의 약어인 'struct'를 사용하여 정의
struct sawon {
	char name[10];
    char jikwi[10];
    int pay;
};

//struct : 구조체를 정의하는 예약어
//sawon : 구조체의 이름으로 사용자가 임의로 정함, 이렇게 정의하면 sawon이라는 자료형이 하나 생긴 것
//멤버 : 일반 변수를 선언하는 것과 동일하게 필요한 필드들을 임의로 선언하면 됨 (name[10], jikwi[10], pay)
  • 구조체 변수의 선언
    • 정수형 변수를 사용하려면 'int a'와 같이 선언한 후 사용하는 것처럼 구조체 변수를 사용하려면 먼저 정의한 구조체에 대한 변수를 선언해야함
struct sawon ansan, *seoul;

//struct : 구조체 변수를 선언하는 예약어
//sawon ansan : 정의한 구조체 sawon 자료형으로 변수를 선언하는데 변수의 이름은 ansan이라는 의미, 사용자가 임의로 정하면 됨
//*seoul : 구조체의 포인터 변수, 'struct sawon *seoul'과 같이 별도로 지정할 수도 있음
  • 구조체 멤버의 지정
    • 모든 요소들이 개별적인 이름을 가지고 있으므로 구조체 멤버를 지정할 때는 구조체 변수와 함께 멤버 이름을 지정해야 함
    • 구조체 멤버의 지정 예시
      • '.'의 의한 지정 : 구조체 일반 변수를 이용해 구조체 멤버를 지정할 때
        • ansan.name = "김한국";
      • '->'에 의한 지정 : 구조체 포인터 변수를 이용해 구조체 멤버를 지정할 때
        • seoul->jikwi = "과장";
      • 구조체의 포인터 변수는 일반 포인터 변수처럼 *를 사용하여 멤버를 지정할 수도 있음
        • (*ansan).pay = 5000000;