컴퓨터공학/C언어

C언어 14 - 1 구조체 개념

Arkeiyou 2021. 11. 22. 17:07

용어체크

1. 배열(array)

  • 동일한 종류의 데이터들의 모임

2. 구조체(structure)

  • 서로 다른 종류의 데이터들의 모임

3. 구조체 배열

  • 동일한 구조체 여러 개의 모임
학습내용
  • 1. 구조체 개념과 선언
  • 2. 구조체의 선언과 초기화
  • 3. 구조체 배열
    • 구조체 프로그램 실습
학습목표
  • 1. 구조체 개념을 알고 선언할 수 있다.
  • 2. 구조체를 선언하고 초기화할 수 있다.
  • 3. 구조체의 배열을 알고, 사용할 수 있다.

 

1. 구조체 개념과 선언

 

1-2) 구조체 필요성 

배열은 동일한 종류의 데이터들의 모임이다. 그에 비해 구조체는 서로 다른 자료형의 변수들을 묶어서 만든 새로운 자료형이다. 객체 지향 프로그래에서의 클래스의 모체가 된다. 물론 같은 자료형의 변수들을 묶어서 만드는 것도 가능하다. 

 

형식
struct 구조체명 {
   구조체 멤버 1;
   구조체 멤버 2;
} ;

구조체는 세미콜론(;)으로 끝난다는 것을 기억하자. 

 

 

 

2. 구조체의 선언과 초기화

 

2-1) 구조체 선언

struct 키워드를 사용한다 : 구조체를 선언할 때 사용하는 키워드를 가리킨다.

 

구조체 태그 : 구조체들을 구별하기 위한 구조체의 이름이다.

 

구조체 멤버 : 구조체에 포함되는 변수를 가리킨다. 어떠한 자료형의 변수도 구조체의 멤버가 될 수 있다. 이름이 중복될 수 없다.

 

세미콜론 : 구조체의 선언이 끝나면 반드시 필요하다.

 

2-2) 구조체 변수 선언과 초기화

구조체의 선언은 변수 선언은 아니다. 아직은 정보를 저장할 수 없다.

 

2-3) 구조체 활용

구조체 변수의 비교가 불가능하다.

 

 

 

3. 구조체 배열

 

3-1) 구조체로도 배열을 만들 수 있다.

 


구조체를 소스 파일 첫 부분에 정의하는 것과 특정 함수 안에서 정의하는 것에 차이가 있을까요?구조체를 소스 파일 첫 부분에 정의하면 전체 소스 파일에서 구조체 변수를 선언할 수 있고, 특정 함수 안에서 정의하면 특정 함수 안에서만 구조체 변수를 선언할 수 있습니다.


Quiz 01구조체를 선언하면 자동으로 변수가 생성된다.
  • 1 O
  • 2 X
정답 :2
해설 :구조체 변수를 선언해야 한다.

 

Quiz 02person 구조체의 멤버 중 int age가 있다. age 멤버를 올바르게 참조한 것은?
  • 1 person->age
  • 2 person.age
  • 3 (*person).age
  • 4 person-age
정답 :2
해설 :구조체 멤버 접근을 위해서는 점(.)을 사용한다

 

Quiz 03다음 중 구조체 변수에 사용 가능한 연산은 무엇인가?
  • 1 대입연산
  • 2 비교연산
  • 3 증가연산
  • 4 곱셈연산
정답 :1
해설 :구조체 변수의 대입연산이 가능하다.
학습정리

1. 구조체 개념과 선언

  • 배열(array): 동일한 종류의 데이터들의 모임
  • 구조체(structure): 서로 다른 종류의 데이터들의 모임

2. 구조체의 선언과 초기화

  • 구조체 선언은 변수 선언이 아니며, 어떤 변수들이 포함되는지만 말해줌
  • 구조체의 형태(틀)만 정의하고, 아직은 데이터를 저장할 수 없음
  • 구조체 멤버는 모든 자료형이 가능하며, 구조체도 가능함
  • 구조체 변수의 연산으로는 대입연산이 가능하여, 구조체 변수 안의 자료 복사가 가능함

3. 구조체 배열

  • 동일한 구조체 여러 개의 모임