C언어 초급 - 9장: 함수 (Function) (9.2 매개변수와 반환값)
2025. 2. 24. 11:31ㆍ프로그래밍 언어/C
9.2 매개변수와 반환값
C 언어에서 함수(Function) 는 매개변수(Parameter)와 반환값(Return Value) 을 가질 수 있습니다.
함수를 정의할 때 매개변수를 통해 값을 전달하고, 반환값을 통해 실행 결과를 돌려받을 수 있습니다.
1. 매개변수가 있는 함수
1.1 매개변수란?
- 매개변수(Parameter) 는 함수에 값을 전달하는 변수입니다.
- 함수 정의 시 매개변수 목록을 지정하며, 함수 호출 시 전달된 인자를 받아 사용합니다.
1.2 매개변수의 기본 구조
반환형 함수이름(자료형 매개변수1, 자료형 매개변수2, ...);
📌 함수 호출 시 전달한 값(인자, Argument)이 매개변수로 복사됨.
📌 매개변수의 개수는 제한이 없으며, 여러 개 사용 가능.
📌 매개변수가 없는 경우, () 안을 비워두거나 void를 사용.
1.3 매개변수가 있는 함수 예제
아래 예제는 두 개의 정수를 입력받아 덧셈을 수행하는 함수입니다.
#include <stdio.h>
// 함수 선언
void addNumbers(int a, int b);
int main() {
addNumbers(5, 3); // 함수 호출 (5와 3 전달)
addNumbers(10, 20);
return 0;
}
// 함수 정의
void addNumbers(int a, int b) {
printf("%d + %d = %d\n", a, b, a + b);
}
출력 결과
5 + 3 = 8
10 + 20 = 30
📌 설명
- addNumbers(5, 3) 호출 시, a = 5, b = 3으로 값이 복사됨.
- printf("%d + %d = %d\n", a, b, a + b); → 덧셈 결과 출력.
1.4 여러 개의 매개변수를 사용하는 함수
매개변수의 개수는 제한이 없으며, 여러 개 사용 가능합니다.
#include <stdio.h>
// 함수 선언
void printInfo(char name[], int age, double height);
int main() {
printInfo("Alice", 25, 167.5);
printInfo("Bob", 30, 175.2);
return 0;
}
// 함수 정의
void printInfo(char name[], int age, double height) {
printf("이름: %s, 나이: %d, 키: %.1fcm\n", name, age, height);
}
출력 결과
이름: Alice, 나이: 25, 키: 167.5cm
이름: Bob, 나이: 30, 키: 175.2cm
📌 매개변수는 여러 개 사용 가능하며, 자료형이 서로 달라도 됨.
2. 반환값이 있는 함수
2.1 반환값(Return Value)이란?
- 함수 실행 후, 결과를 반환할 수 있음.
- 반환형(Return Type)이 void가 아닌 경우, return 문을 사용해야 함.
- 반환값이 필요 없는 경우, void를 사용하여 반환을 생략할 수 있음.
2.2 반환값을 가지는 함수의 기본 구조
반환형 함수이름(매개변수) {
return 반환값;
}
📌 return 키워드를 사용하여 값을 반환해야 함.
📌 반환형과 반환값의 자료형이 일치해야 함.
2.3 반환값이 있는 함수 예제
아래 예제는 두 정수를 입력받아 합을 반환하는 함수입니다.
#include <stdio.h>
// 함수 선언
int add(int a, int b);
int main() {
int result = add(10, 20); // 함수 호출 후 결과 저장
printf("10 + 20 = %d\n", result);
printf("5 + 3 = %d\n", add(5, 3)); // 직접 출력
return 0;
}
// 함수 정의
int add(int a, int b) {
return a + b; // 덧셈 결과 반환
}
출력 결과
10 + 20 = 30
5 + 3 = 8
📌 설명
- return a + b; → a + b 값을 반환.
- int result = add(10, 20); → 반환된 값을 변수에 저장 후 출력.
2.4 void 반환형 (반환값이 없는 함수)
반환값이 필요 없는 함수는 void를 사용하여 return을 생략할 수 있습니다.
#include <stdio.h>
// 함수 선언
void printMessage();
int main() {
printMessage();
return 0;
}
// 함수 정의
void printMessage() {
printf("반환값이 없는 함수입니다.\n");
}
출력 결과
반환값이 없는 함수입니다.
📌 설명
- void 함수는 결과를 반환하지 않으므로 return 문이 필요 없음.
3. 매개변수와 반환값이 모두 있는 함수
매개변수와 반환값이 모두 있는 경우,
함수에 값을 전달하고 실행 후 결과를 반환받을 수 있습니다.
#include <stdio.h>
// 함수 선언
double getArea(double radius);
int main() {
double radius, area;
printf("원의 반지름을 입력하세요: ");
scanf("%lf", &radius);
area = getArea(radius); // 함수 호출 후 반환값 저장
printf("원의 넓이: %.2f\n", area);
return 0;
}
// 함수 정의
double getArea(double radius) {
return 3.14159 * radius * radius; // 원의 넓이 계산 후 반환
}
실행 예시
원의 반지름을 입력하세요: 5
원의 넓이: 78.54
📌 설명
- getArea(radius) → radius 값을 전달받아 원의 넓이를 계산 후 반환.
- area = getArea(radius); → 반환된 값을 변수에 저장 후 출력.
4. 정리
개념 | 설명 | 예제 |
매개변수 | 함수에 값을 전달하는 변수 | void printName(char name[]) |
반환값 | 함수 실행 후 결과를 반환 | int add(int a, int b) { return a + b; } |
매개변수 O, 반환값 X | 함수는 값을 입력받지만 결과를 반환하지 않음 | void printMessage(char name[]) |
매개변수 X, 반환값 O | 값 없이 실행하고 결과를 반환 | int getNumber() { return 10; } |
매개변수 O, 반환값 O | 값을 입력받고 결과를 반환 | double getArea(double r) { return 3.14 * r * r; } |
📌 매개변수를 사용하면 함수로 값을 전달 가능
📌 반환값을 사용하면 함수의 실행 결과를 받을 수 있음
📌 반환값이 필요 없으면 void 사용
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 초급 - 9장: 함수 (Function) (9.4 재귀 함수 (Recursive Function)) (0) | 2025.02.24 |
---|---|
C언어 초급 - 9장: 함수 (Function) (9.3 지역 변수와 전역 변수) (0) | 2025.02.24 |
C언어 초급 - 9장: 함수 (Function) (9.1 함수의 개념과 필요성) (0) | 2025.02.24 |
C언어 초급 - 8장: 배열과 문자열 (8.3 문자열 (char 배열)) (0) | 2025.02.23 |
C언어 초급 - 8장: 배열과 문자열 (8.2 다차원 배열) (0) | 2025.02.23 |