C언어

[혼공C] 4주차

namerong 2025. 7. 24. 17:06

[기본숙제] 함수의 유형을 정리하여 공유하기

 

1. 함수 정의

반환형 함수명(매개변수1, 매개변수2)
{
	//함수가 수행하는 명령, 결괏값을 돌려보냄
}

- 함수명 : 함수의 기능을 충분히 예상할 수 있는 단어로 식별자 사용

- 매개변수 : 함수가 처리할 데이터를 저장하는 변수로 함수명 옆의 괄호 안에 선언

- 반환형 : 함수가 기능을 수행한 후 호출한 곳으로 돌려줄 값의 자료형

int sum(int a, int a)
{
	result;
    result = a + b;
    
    return result;
}
//main 함수에 result 변수명 있음

 

2. 함수 호출 & 반환

- 함수 호출에 입력된 인수는 호출된 함수의 매개변수로 사용된다.

- 함수의 반환값을 수식의 일부로 사용할 수 있다.

- 함수는 return문으로 호출한 곳으로 값을 반환한다.

 

3. 함수 선언

- 함수 원형에 세미클론을 붙여서 선언한다.

- 선선을 통해 매개변수와 반환값의 정보를 확인한다.

 

4. 매개변수

- 매개변수는 함수가 호출될 때 외부에서 전달받는 값을 말한다.

- 매개변수가 없는 함수에서는 매개변수 자리에 void를 적어 매개변수가 없는 함수라고 한다.

 

5. 반환값이 없는 함수

- 반환값이 없는 함수는 선언과 정의의 반환형에 void를 사용한다.

- 반환값이 없는 함수는 return문을 생략할 수 있다.

- void 함수명(void)로 함수의 원형을 만들면 매개변수와 반환값이 모두 없다.

 

6. 재귀호출 함수

- 함수 안에서 자신을 호출하면 재귀호출 함수다.

- 재귀호출 함수는 바로 직전에 호출한 곳으로 반환한다.

 

 

[추가숙제] p. 226 7-5. 직접 해보는 손코딩 예제 테스트 후 apple 출력하고 종료한 화면 캡처하기 왜 무한대로 출력 되지 않는지 이유에 대해 생각하고 정리해보기

#include <stdio.h>

void fruit(void);

int main(void)
{
    fruit();

    return 0;
}

void fruit(void)
{
    printf("apple\n");
    fruit();
}

- 실행결과

❖ 무한대로 출력이 되지 않는 이유

재귀 함수가 종료 조건 없이 자기 자신을 계속 호출하면 스택 오버플로우 발생한다.

스택 오버플로우가 발생하면 실행 중인 프로그램이 강제 종료되어 무한출력이 불가능해진다.

무한출력이 필요하면 반복문 사용하는걸 추천한다.

'C언어' 카테고리의 다른 글

[혼공C] 6주차  (2) 2025.08.15
[혼공C] 5주차  (3) 2025.08.03
[혼공C] 3주차  (0) 2025.07.16
[혼공C] 2주차  (0) 2025.07.10
[혼공C] 1주차  (0) 2025.07.06