컴퓨터공학/C언어

C언어 14 - 2 구조체 활용

Arkeiyou 2021. 11. 28. 22:28

용어체크

1. 간접 멤버 연산자
(indirect membership operator)

  • 구조체 포인터변수를 이용한 구조체 멤버 접근을 위해 사용되는 연산자

2. 공용체

(union)
  • 같은 메모리 영역을 여러 개의 변수가 공유
  • 메모리 절약(가장 큰 멤버의 크기만큼 할당)
  • 동시에 모든 멤버 변수들의 값을 저장할 수 없음

3. 열거형
(enumeration)

  • 변수가 가질 수 있는 기호상수들을 모아놓은 자료형
  • 프로그램의 이해도 향상, 오류 줄여줌
학습내용
  • 1. 구조체와 포인터
  • 2. 구조체와 함수
  • 3. 공용체
    • 구조체 활용 실습
학습목표
  • 1. 구조체와 포인터를 알고, 사용할 수 있다.
  • 2. 구조체와 함수를 알고, 사용할 수 있다.
  • 3. 공용체를 알고, 사용할 수 있다.

 

 

 

 

 


열거형을 사용하는 이점은 무엇일까요?가질 수 있는 값을 제한하는 것이 프로그래밍 오류를 줄여주기 때문입니다.


Quiz 01구조체를 함수로 전달하면 원본이 전달된다.
  • 1 O
  • 2 X
정답 :1
해설 :구조체를 함수로 전달하면 값에 의한 호출방식에 의해 원본이 전달된다.

 

Quiz 02구조체와 공용체의 차이점은 무엇인가?
  • 1 멤버 접근 방식
  • 2 태그이름 사용
  • 3 정의 시 변수 자동 생성
  • 4 메모리 할당 크기
정답 :4
해설 :구조체는 멤버들의 총크기, 공용체는 멤버 중 가장 큰 크기만큼 메모리가 할당된다.

 

Quiz 03공용체를 정의하기 위해 사용하는 키워드는 무엇인가?
  • 1 struct
  • 2 enum
  • 3 union
  • 4 int
정답 :3
해설 :union은 공용체를 정의하기 위해 사용하는 키워드이다.

학습정리

1. 구조체와 포인터

  • 구조체에서 포인터가 사용되는 경우에는 구조체를 가리키는 포인터로 사용하는 경우와 포인터를 멤버로 가지는 구조체를 사용하는 경우가 있음
  • 구조체 포인터변수를 이용하여 구조체 멤버 접근을 하기 위해 간접 멤버 연산자( → 연산자)를 사용함

2. 구조체와 함수

  • 구조체를 함수의 인수로 사용할 수 있음
  • 구조체를 함수에서 반환값으로 반환이 가능함
  • 값에 의한 호출이 사용되기 때문에, 구조체 변수의 모든 내용이 복사되어 함수로 전달/반환되며, 구조체의 크기가 클 경우에 상당한 시간이 소요됨 → 구조체의 포인터를 사용하는 것이 바람직
  • 함수가 구조체를 반환할 때 복사본이 반환되며, 한 번에 여러 개의 값을 반환할 수 있음

3. 공용체(union)

  • 같은 메모리 영역을 여러 개의 변수가 공유하여 메모리 절약(가장 큰 멤버의 크기만큼 할당)이 가능하지만, 동시에 모든 멤버 변수들의 값을 저장할 수 없음
  • 열거형(enumeration)은 변수가 가질 수 있는 기호상수들을 모아놓은 자료형으로, 프로그램의 이해도를 향상시키고, 오류를 줄여줌