
1. 함수의 개념 설명
함수는 "작업을 하는 작은 기계"라고 생각하면 됩니다. 우리가 수학에서 계산기를 사용해서 덧셈을 한다고 생각해보세요. 함수는 특정 작업을 수행하는 코드 블록입니다.
- 함수 선언: 이 함수가 무엇을 하는지, 어떤 입력을 받을 수 있는지, 어떤 결과를 반환하는지를 알려주는 것이에요.
- 함수 정의: 실제로 그 함수가 어떤 작업을 수행하는지를 구현한 부분이에요.
#include <stdio.h>
// 함수 정의
void sayHello() {
printf("Hello, World!\n"); // 이 함수가 실행되면 "Hello, World!"를 출력합니다.
}
int main() {
sayHello(); // sayHello 함수를 호출합니다.
return 0;
}
--------------------------------------------------------------------------------
팁!!
함수를 위에 써야 컴파일러가 에러없이 함수를 실행해요.
그러나 여러사정으로 main 함수 아래로 이동해야 하는 경우는
아래 예제 처럼 void sayHello(); 쓰면 에러가 나지 않습니다.
--------------------------------------------------------------------------------
팁!! 함수를 위에 써야 컴파일러가 에러없이 함수를 실행해요. 그러나 여러사정으로 main 함수 아래로 이동해야 하는 경우는 아래 예제 처럼 void sayHello(); 쓰면 에러가 나지 않습니다.
#include <stdio.h>
// 함수 선언
void sayHello(); // sayHello 함수가 있을 것이라고 컴퓨터에 알려줍니다.
int main() {
sayHello(); // sayHello 함수를 호출합니다.
return 0;
}
// 함수 정의
void sayHello() {
printf("Hello, World!\n"); // 이 함수가 실행되면 "Hello, World!"를 출력합니다.
}
- 위의 예제에서 sayHello는 함수의 선언과 정의를 보여줍니다.
- sayHello 함수는 "Hello, World!"를 화면에 출력합니다.
2. 매개변수와 반환값
개념 설명
- 매개변수: 함수가 작업을 수행하는 데 필요한 입력값이에요. 예를 들어, 덧셈을 하려면 두 숫자가 필요하겠죠?
- 반환값: 함수가 작업을 끝내고 주는 결과값이에요. 덧셈을 하면 결과로 합이 나옵니다.
코드 설명
#include <stdio.h>
// 함수 선언
int add(int a, int b); // 두 개의 정수를 받아서 정수를 반환하는 add 함수
int main() {
int result = add(5, 3); // 5와 3을 더한 결과를 result 변수에 저장합니다.
printf("Result: %d\n", result); // 결과를 출력합니다.
return 0;
}
// 함수 정의
int add(int a, int b) {
return a + b; // 두 매개변수 a와 b를 더한 값을 반환합니다.
}
- add 함수는 두 개의 숫자를 받아서 그 합을 반환합니다.
- main 함수에서 add(5, 3)을 호출하면, 5와 3의 합인 8을 반환받아 출력합니다.
C 언어로 이름과 나이를 입력받아 출력하는 함수 만들기
코드 설명
#include <stdio.h>
void print_info(char name[], int age) {
printf("이름: %s\n", name);
printf("나이: %d세\n", age);
}
int main() {
char name[20];
int age;
printf("이름을 입력하세요: ");
scanf("%s", name);
printf("나이를 입력하세요: ");
scanf("%d", &age);
print_info(name, age);
return 0;
}
C 언어로 두 수를 곱하고, 더하고, 빼고, 나누는 함수 만들기
코드 설명
#include <stdio.h>
void calculate(int a, int b) {
int sum = a + b;
int difference = a - b;
int product = a * b;
float quotient = (float)a / b; // 나눗셈 결과를 실수로 저장하기 위해 형 변환
printf("두 수의 합: %d\n", sum);
printf("두 수의 차: %d\n", difference);
printf("두 수의 곱: %d\n", product);
printf("두 수의 나눗셈: %.2f\n", quotient); // 소수점 둘째 자리까지 출력
}
int main() {
int num1 = 10, num2 = 20;
calculate(num1, num2);
return 0;
}
3. 재귀 함수
개념 설명
재귀 함수는 자신을 호출하는 함수입니다. 마치 거울을 보고 있을 때 거울 속의 거울이 계속 반복되는 것처럼요.
- 기본 개념: 재귀 함수는 작업을 더 작은 부분으로 나누어 반복합니다. 종료 조건이 있어야 무한 루프에 빠지지 않습니다.
코드 설명
#include <stdio.h>
// 함수 선언
int factorial(int n); // n의 팩토리얼을 계산하는 함수
int main() {
int number = 5;
int result = factorial(number); // 5의 팩토리얼을 계산합니다.
printf("Factorial of %d is %d\n", number, result);
return 0;
}
// 함수 정의
int factorial(int n) {
if (n == 0) { // 종료 조건
return 1; // 0!은 1입니다.
} else {
return n * factorial(n - 1); // n! = n * (n-1)!
}
}
- factorial 함수는 자신을 호출하여 n의 팩토리얼을 계산합니다.
- factorial(5)는 5 * factorial(4)를 호출하고, factorial(4)는 4 * factorial(3)를 호출하는 식으로 진행됩니다.
- 종료 조건이 되어 n이 0이 되면, 1을 반환하여 재귀 호출이 종료됩니다.
요약
- 함수 선언과 정의: 함수가 무엇을 하는지 선언하고, 실제 작업을 구현하는 부분입니다.
- 매개변수와 반환값: 함수가 필요한 입력값(매개변수)을 받고, 작업 후 결과값(반환값)을 줍니다.
- 재귀 함수: 자기 자신을 호출하여 문제를 해결하는 함수입니다. 종료 조건이 필요합니다.
'C_language' 카테고리의 다른 글
| c 언어 함수의 지역변수 & 전역변수 (0) | 2024.08.27 |
|---|---|
| c 언어 배열에 대해 알려줄께? (0) | 2024.08.27 |
| c언어 switch 문 (0) | 2024.08.27 |
| C언어 : if-else if vs switch 어떤 문장을 써야 할까요? (0) | 2024.08.19 |
| C언어 반복문: 쉽게 배우는 반복 (0) | 2024.08.15 |