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;
}