Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 이진탐색
- 배열
- GraphQL
- 브라우저
- Machine Learning
- 큐
- cors
- 코딩테스트
- 해시테이블
- pytorch
- vue3
- 스택
- 자바스크립트
- 연결리스트
- 프로그래머스
- 연결 리스트
- APOLLO
- 컨테이너
- 포인터
- alexnet
- 타입스크립트
- 프론트엔드
- RT scheduling
- 알고리즘
- 자료구조
- 릿코드
- C
- RxJS
- 웹팩
- 프로세스
Archives
- Today
- Total
프린세스 다이어리
[C] 함수 문법 정리 본문
728x90
1. 함수 기본
#include <stdio.h>
void random(int input) {
printf("말머리 붙이기: %d\n", input);
}
int main(void) {
random(3);
random(5);
random(6);
return 0;
}
어떤 로직을 반복해서 처리하고 싶을 땐 함수를 따로 빼서 만든다. main 함수에서는 만들어 둔 함수를 불러와서 호출한다.
말머리 붙이기: 3
말머리 붙이기: 5
말머리 붙이기: 6
위와 같은 결과가 나온다.
2. 더하기 함수
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main(void) {
printf("%d \n", add(10, 25));
return 0;
}
add 함수의 인자만 바꿔서 printf 로직을 여러 번 불러올 수도 있다.
3. 사칙연산 함수
#include <stdio.h>
void calculator(int a, int b) {
printf("%d + %d = %d\n", a, b, a + b);
printf("%d - %d = %d\n", a, b, a - b);
printf("%d * %d = %d\n", a, b, a * b);
printf("%d / %d = %d\n", a, b, a / b);
prinf("\n");
}
int main(void) {
calculator(10, 25);
calculator(4, 11);
calculator(12, 9);
return 0;
}
10 + 25 = 35
10 - 25 = -15
10 * 25 = 250
10 / 25 = 0
4 + 11 = 15
4 - 11 = -7
4 * 11 = 44
4 / 11 = 0
12 + 9 = 21
12 - 9 = 3
12 * 9 = 108
12 / 9 = 1
소스 맨 위에 불러오는 라이브러리 또한 내부적으로 다양한 함수를 패키지 형태로 만들어놓은 것이다.
4. 재귀 함수
자기 자신을 계속 불러오므로 무한루프가 발생할 수 있어 반드시 재귀 종료 조건이 필요하다.
팩토리얼
#include <stdio.h>
int factorial(int a) {
if (a == 1) return 1;
else return a * factorial(a - 1);
}
int main(void) {
int n;
printf("n 팩토리얼을 계산합니다. ");
scanf("%d", &n);
printf("%d\n", factorial(n));
return 0;
}
factorial 함수의 인자로 받는 값이 1일 경우에는 1을 리턴한다는 종료 조건이 있기 때문에 무한반복에 빠지지 않는다. 반복문을 이용했을 때보다 짧은 코드로 작성할 수 있다. 자기의 함수 이름이 함수 내부에 있으면 재귀 함수다.
n 팩토리얼을 계산합니다. 5
120
C언어는 함수로 시작해서 함수로 끝나는 언어라고 볼 수 있다. 프로그램의 실행이 main함수로 시작되고, main함수 내부에서 다른 함수를 불러오기 때문이다.
728x90
'C, C++' 카테고리의 다른 글
[C] 포인터 개념, 활용방법 정리 (0) | 2021.09.26 |
---|---|
[C] 배열 선언방법, 문자열 정리 (0) | 2021.09.25 |
[C] 반복문 문법 정리 (0) | 2021.09.24 |
[C/C++] system("pause") 커맨드를 사용하면서 만난 에러와 새로 알게 된 것 정리 (0) | 2021.09.22 |
[C/C++] GCC가 무엇인가요? GCC의 컴파일 과정 4단계 (0) | 2021.09.21 |
Comments