C 함수의 매개변수와 반환값

minho-log·2026년 1월 23일

C

목록 보기
23/33

<공부 주제>

C 언어의 매개변수와 반환값

<공부한 내용 정리>

C 언어에서 매개변수(parameter)는 함수로 값을 전달받기 위한 변수이고, 반환값(return value)은 함수가 수행한 결과를 호출한 곳으로 돌려주는 값이다.
함수는 수행한 결과를 호출한 곳으로 돌려주는 값이다.
함수는 입력(매개변수) -> 처리 -> 출력(반환값) 구조로 동작한다.

🔹 매개변수의 기본 구조

반환형 함수이름(자료형 매개변수)
{
    실행 코드
}

ex)

int square(int x)
{
    return x * x;
}

🔹 매개변수 사용 예제

int add(int a, int b)
{
    return a + b;
}
int result = add(3, 4);

a, b는 함수 내부에서만 사용 가능
전달받은 값은 복사되어 사용

🔹 매개변수 전달 방식 (값 전달)
C 언어는 값에 의한 전달(call by value) 방식을 사용한다.

void change(int x)
{
    x = 100;
}
int main(void)
{
    int a = 10;
    change(a);
    printf("%d\n", a);  // 10
}

원본 변수는 변경되지 않는다.

🔹 반환값의 기본 개념

return 값;

함수 실행을 종료
값을 호출한 곳으로 반환

int getNum(void)
{
    return 5;
}

🔹 반환값 받기

int num = getNum();

반환형과 변수의 자료형이 일치해야 한다

🔹 반환값이 없는 함수 (void)

void printHello(void)
{
    printf("Hello\n");
}

반환값 없음
return;만 사용 가능

🔹 여러 값을 반환할 수 있을까?
C 언어에서는 함수 하나당 반환값은 하나만 가능

// 불가능
return a, b;

여러 값을 반환하려면 포인터 또는 구조체 사용해야 한다고 함

<예제 / 실습 코드>

#include <stdio.h>

int max(int a, int b)
{
    if (a > b)
        return a;
    else
        return b;
}

int main(void)
{
    int result = max(10, 20);
    printf("큰 값: %d\n", result);
    return 0;
}

<헷갈렸던 점>

  • 매개변수 값이 원본에 영향을 주지 않는 이유
  • 반환형과 실제 반환값의 자료형 불일치
  • void 함수에서 값을 반환하려는 실수

<오늘의 정리>

  • 매개변수는 함수로 전달되는 입력값이다
  • C 언어는 값 전달 방식을 사용한다
  • 함수는 하나의 반환값만 가질 수 있다
  • 반환형과 반환값 자료형은 일치해야 한다
profile
개발 공부를 하며 직접 부딪히고 공부한 것을 기록합니다.

0개의 댓글