컴퓨터공학/C언어

C언어 10주 2차 재귀 함수의 이해

Arkeiyou 2021. 10. 27. 22:13

자동 할당
(Automatic Allocation)

  • 블록이 종료되면 저장 공간이 반납되는 방법

정적 할당
(Static Allocation)

  • 프로그램이 종료되면 저장 공간이 반납되는 방법

재귀함수, 순환함수
(Recursive Function)

  • 자기 자신을 호출하는 함수
학습내용
  • 1. 함수의 생존 시간
  • 2. 재귀 함수의 개념
    • 재귀 함수의 예제 실습
학습목표
  • 1. 함수의 생존 시간에 대해 설명할 수 있다.
  • 2. 재귀 함수의 개념을 설명할 수 있다.

 

 

 


일반적으로 프로그램을 작성할 때 자동 저장 유형을 가지는 변수를 사용하면 좋은데, 그 이유는 무엇일까요?

자동 저장 유형은 프로그래머가 신경 쓰지 않아도 생성되었다가 소멸되므로 메모리를 효율적으로 사용하게 해줍니다. 또한 자동 저장 유형을 사용하는 경우, 함수나 블록을 다른 함수나 블록에 대하여 독립적으로 만들 수 있습니다.


Quiz 01extern으로 변수를 정의하면 저장 공간이 할당된다.

  • 1 O
  • 2 X

정답 :2

해설 :extern으로 변수를 정의하는 것은 외부에서 선언된 변수를 사용한다는 의미에 불과하다.

 

 

 

Quiz 02다음 중 변수의 저장 유형 지정자에 해당하지 않는 것은?

  • 1 auto
  • 2 register
  • 3 dynamic
  • 4 static

정답 :3

해설 :저장 유형 지정자에는 auto, register, static, extern가 있다.

 

 

 

Quiz 03변수를 CPU 내부의 레지스터에 저장시키는 지정자는 무엇인가?

  • 1 auto
  • 2 register
  • 3 dynamic
  • 4 static

정답 :2

해설 :register는 변수를 CPU 내부의 레지스터에 저장시키는 지정자이다.

 


학습정리

1. 함수의 생존 시간

  • 생존 시간에 따른 변수 분류에는 정적 할당과 자동 할당이 있음
  • 변수 선언 위치에 따라 전역 변수와 지역 변수로 구분
  • 저장 유형 지정자에는 auto, register, static, extern가 있음

2. 재귀 함수의 개념

  • 재귀함수는 자기 자신을 호출하는 함수이며, 탈출 조건이 반드시 필요함
  • 대표적인 예: 팩토리얼(factorial) 문제, 하노이탑 문제 등
  • 일정한 규칙을 갖고 동일한 유형의 작업을 반복 처리하는 경우에 사용
  • 스택(stack)이라는 메모리 공간을 많이 사용하는 단점이 있음

'컴퓨터공학 > C언어' 카테고리의 다른 글

C언어 11 - 2 배열과 함수  (0) 2021.11.14
C언어 11 - 1 배열의 개념  (0) 2021.10.30
C 언어 10 - 1 함수와 기억 클래스  (0) 2021.10.23
C 언어 9 - 2 함수 호출  (0) 2021.10.19
C 언어 9 - 1 함수의 개념  (0) 2021.10.14