함수 개념 : c언어를 사용하다 보면 main함수 이외의 함수를 사용할 때가 있다.
함수를 사용하는 가장 큰 이유는 반복적인 코드를 작성하는 것을 방지하기 위함이다.
함수를 선언한 후에 필요할 때만 불러와서 사용하면 되므로 코드를 더욱 깔끔하고 효율적으로 사용할 수 있다.
실행속도가 늦다는 단점이 있음에도, 장점이 더 크므로 다들 함수를 사용하게 된다.
함수 선언 :
#include <stdio.h>
void hello() {
printf("Hello World!");
}
int main() {
hello();//함수 호출
return 0;
}
위는 간단하게 함수를 이용하여 문자를 출력하는 코드이다.
main함수 위에 void어쩌고로 정의된 것이 바로 함수이다.
즉 위와 같이 함수를 선언하는 방법은...
void(함수의 자료형) hello(함수 이름) (매개 변수) {
printf("Hello World!");
}
와 같이 선언하는 것이다.
이때 참고할 사항이 몇 가지 있는데, 함수의 자료형은 웬만하면 모든 자료형이 사용 가능하고, 매개 변수가 무조건 들어갈 필요는 없다.
주의할 점 : 함수의 선언은 반드시 main함수 전에 이루어져야 한다.(이는 c언어가 절차지향형 언어이기 때문이다)
함수 호출 : 함수의 호출은 main 함수에서
함수 이름(인수)을 작성하면 함수의 코드 내용이 그대로 실행되는 것이다.
매개 변수 : 함수 내에서 사용되는 변수를 선언하는 것으로, 반드시 각각의 변수마다 자료형을 지정하여 선언하여야 한다.
인수 : main 함수 내에서 함수를 호출할 때 제공하는 값으로, 함수에서 매개변수를 선언할 값을 지정한다.
함수 종류 : 함수의 종류는 표준 라이브러리 함수와 사용자 정의 함수, 이 두 개가 있다
표준 라이브러리 함수는 프로그래밍을 할 때 자주 쓰는 기능을 미리 정의해 놓은 함수로
기본적인 입출력을 위한 헤더 <stdio.h>가 그 중 하나이다.
사용자 정의 함수는 위의 함수와 같이, 사용자가 임의로 선언하여 사용하는 함수를 의미한다.
#include <stdio.h>
int pl(int a1, int b1){
return a1 + b1;
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("%d", pl(a, b));
return 0;
}
반환 값 : 위의 코드와 같이 int형으로 선언된 함수는 반드시 무언가를 반환(return)해주어야 하는데, 여기에서는 인수 a, b를 매개변수 a1, b1의 합을 반환하였다.
예시로, 코드에 마지막에 0을 반환하는 이유는 0은 false 이므로 코드를 종료하기 위해서 반환하는 것과 같다고 볼 수 있다.
재귀 함수 : 재귀 함수는 함수 안에서 계속하여 자기 자신을 호출하는 함수이다. 이는 대체로 for문과 같이 반복문을 사용하여햐 할 때 사용한다.
하지만 실행 속도가 다른 반복문을 사용하는 것보다 현저히 느려서 잘 사용하지는 않는다.
다음은 1부터 입력받은 수까지 출력하는 재귀함수이다.
#include <stdio.h>
int n1 = 1;
int num(int n) {
if (n == 0)
return 0;
printf("%d ", n1);
n1++;
num(n - 1);
}
int main() {
int n;
scanf("%d", &n);
num(n);
return 0;
}
전역 변수 : 위의 코드를 자세히 보면, 어느 함수에도 귀속되지 않는 n1이라는 변수가 선언되어 있다.
이는 전역 변수라고 하는데, 함수 밖에서 선언하는 변수이다.
재귀함수에서 주로 값이 임의로 지정되면 안 되는 변수가 필요할 때 선언한다.
지역 변수 : 지역 변수는 전역 변수의 반대로 함수에 귀속되는 변수이다.
특정 함수에 귀속되므로, 귀속된 함수 내에서만 사용이 가능하다.
'TeamLog > 과제' 카테고리의 다른 글
C언어와 js의 차이 (0) | 2023.06.05 |
---|---|
[JS] 리터럴, 식별자, 키워드 (0) | 2023.05.21 |
1598. 꼬리를 무는 숫자 나열 (0) | 2023.04.10 |
1402. 아무래도이문제는A번난이도인것같다 (0) | 2023.04.09 |
8958. OX퀴즈 (0) | 2023.04.09 |
함수 개념 : c언어를 사용하다 보면 main함수 이외의 함수를 사용할 때가 있다.
함수를 사용하는 가장 큰 이유는 반복적인 코드를 작성하는 것을 방지하기 위함이다.
함수를 선언한 후에 필요할 때만 불러와서 사용하면 되므로 코드를 더욱 깔끔하고 효율적으로 사용할 수 있다.
실행속도가 늦다는 단점이 있음에도, 장점이 더 크므로 다들 함수를 사용하게 된다.
함수 선언 :
#include <stdio.h>
void hello() {
printf("Hello World!");
}
int main() {
hello();//함수 호출
return 0;
}
위는 간단하게 함수를 이용하여 문자를 출력하는 코드이다.
main함수 위에 void어쩌고로 정의된 것이 바로 함수이다.
즉 위와 같이 함수를 선언하는 방법은...
void(함수의 자료형) hello(함수 이름) (매개 변수) {
printf("Hello World!");
}
와 같이 선언하는 것이다.
이때 참고할 사항이 몇 가지 있는데, 함수의 자료형은 웬만하면 모든 자료형이 사용 가능하고, 매개 변수가 무조건 들어갈 필요는 없다.
주의할 점 : 함수의 선언은 반드시 main함수 전에 이루어져야 한다.(이는 c언어가 절차지향형 언어이기 때문이다)
함수 호출 : 함수의 호출은 main 함수에서
함수 이름(인수)을 작성하면 함수의 코드 내용이 그대로 실행되는 것이다.
매개 변수 : 함수 내에서 사용되는 변수를 선언하는 것으로, 반드시 각각의 변수마다 자료형을 지정하여 선언하여야 한다.
인수 : main 함수 내에서 함수를 호출할 때 제공하는 값으로, 함수에서 매개변수를 선언할 값을 지정한다.
함수 종류 : 함수의 종류는 표준 라이브러리 함수와 사용자 정의 함수, 이 두 개가 있다
표준 라이브러리 함수는 프로그래밍을 할 때 자주 쓰는 기능을 미리 정의해 놓은 함수로
기본적인 입출력을 위한 헤더 <stdio.h>가 그 중 하나이다.
사용자 정의 함수는 위의 함수와 같이, 사용자가 임의로 선언하여 사용하는 함수를 의미한다.
#include <stdio.h>
int pl(int a1, int b1){
return a1 + b1;
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("%d", pl(a, b));
return 0;
}
반환 값 : 위의 코드와 같이 int형으로 선언된 함수는 반드시 무언가를 반환(return)해주어야 하는데, 여기에서는 인수 a, b를 매개변수 a1, b1의 합을 반환하였다.
예시로, 코드에 마지막에 0을 반환하는 이유는 0은 false 이므로 코드를 종료하기 위해서 반환하는 것과 같다고 볼 수 있다.
재귀 함수 : 재귀 함수는 함수 안에서 계속하여 자기 자신을 호출하는 함수이다. 이는 대체로 for문과 같이 반복문을 사용하여햐 할 때 사용한다.
하지만 실행 속도가 다른 반복문을 사용하는 것보다 현저히 느려서 잘 사용하지는 않는다.
다음은 1부터 입력받은 수까지 출력하는 재귀함수이다.
#include <stdio.h>
int n1 = 1;
int num(int n) {
if (n == 0)
return 0;
printf("%d ", n1);
n1++;
num(n - 1);
}
int main() {
int n;
scanf("%d", &n);
num(n);
return 0;
}
전역 변수 : 위의 코드를 자세히 보면, 어느 함수에도 귀속되지 않는 n1이라는 변수가 선언되어 있다.
이는 전역 변수라고 하는데, 함수 밖에서 선언하는 변수이다.
재귀함수에서 주로 값이 임의로 지정되면 안 되는 변수가 필요할 때 선언한다.
지역 변수 : 지역 변수는 전역 변수의 반대로 함수에 귀속되는 변수이다.
특정 함수에 귀속되므로, 귀속된 함수 내에서만 사용이 가능하다.
'TeamLog > 과제' 카테고리의 다른 글
C언어와 js의 차이 (0) | 2023.06.05 |
---|---|
[JS] 리터럴, 식별자, 키워드 (0) | 2023.05.21 |
1598. 꼬리를 무는 숫자 나열 (0) | 2023.04.10 |
1402. 아무래도이문제는A번난이도인것같다 (0) | 2023.04.09 |
8958. OX퀴즈 (0) | 2023.04.09 |