본문 바로가기

전체 글

(71)
[C++] 1-4 재귀함수 설명 및 예제 재귀함수란? 재귀 함수(recursive call)이란 함수가 자기 자신을 다시 호출하여 실행하는 함수를 말한다. 함수가 호출되면 실인수를 전달받는 가인수들의 값과 그 함수 내에서만 사용되는 지역변수들의 값은 메모리 상의 스택(stack)이라는 임시 메모리에 저장된다. 함수의 실행이 종료되면 지역변수들은 스택 메모리에서 사라진다. 만약 재귀 호출의 회수가 많아지면 호출된 횟수만큼 지역변수들의 메모리 영역이 새로운 스택 메모리에 쌓이게 된다. 따라서 함수의 과도한 재귀 호출은 스택 메모리의 이용을 증가시켜 'stack overflow' 오류를 발생시킬 수 있다. 예제 #include using namespace std; int fact(int n);//함수의 원형 선언 int main() { int a, ..
[C++] 1-3 void 함수 호출 및 쓰는 이유 void 함수 함수형은 return문에서 반환해 주는 값의 데이터형과 일치해야 한다. 만약 반환값이 없으면 함수형을 void로 지정할 수 있다. void형 함수에서는 반환값이 없으므로 return문을 사용하지 않는다. 하지만 뒤에 식이 생략된 return문을 void형의 함수인 경우 특별히 사용할 수 있다. 또한, void는 함수를 정의할 때 인수가 없다는 의미로도 사용할 수 있다. 인수가 없는 함수를 정의하는 경우, 괄호 안을 비워도 된다. 하지만 괄호 안에 void를 표기하는 것이 좀 더 바람직한 프로그래밍 작성법으로 볼 수 있다. 예제 1 #include using namespace std; void xyz(int x);//함수의 원형 선언 int main()//main() 함수 { xyz(123)..
[C++] 1-2 함수의 원형 선언 및 위치 1. 함수의 원형 사용하는 함수의 수가 적은 경우에는 함수가 main() 함수 앞에 위치해도 상관없다. 하지만 사용하는 함수의 수가 많고, 복잡한 경우에는 컴파일에 문제가 발생할 수가 있다. 그런 경우, 이들 함수의 원형을 main() 함수 앞에 모아서 선언하면 이들 함수에 관한 정보를 컴파일러에게 알려줘서 해결할 수 있다. 실제로 함수의 원형을 main() 함수 앞에 선언하고 함수의 정의를 main() 함수 뒤에 위치하면, 편리하게 프로그래밍할 수 있다. 아래 예제들처럼, 함수의 원형은 사용자가 직접 main() 함수 앞에 선언해야 한다. 함수의 원형을 선언하고 끝에 세미콜론(;)을 기입해야 한다. 예제 1 #include using namespace std; int sum(int, int);//함수의..