본문 바로가기

언어/C++41

[C++ 기본 공부정리] 11-4. 함수 포인터(function pointer) 공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 1. 함수 포인터란? 어떤 데이터가 생성되면 메모리에 공간을 할당받아 저장되고 그 공간에 대한 주소를 저장하는 변수가 포인터이다. 마찬가지로 함수가 정의되면 프로그램이 실행될 때 메모리에 저장되므로 함수가 저장된 공간의 주소를 가리킬 수 있는 변수, 함수 포인터(function pointer)를 생성할 수 있다. 인수로 넘겨받은 정수를 출력하는 함수를 만들어 호출한 모습이다. 함수는 배열처럼 함수의 이름이 시작 주소를 가지고 있어 함수를 호출하는 경우 해당 메모리로 점프하여 기능을 수행한 뒤 호출한 메모리의 위치로 돌아오게 된다. 2. 함수 포인터 사용 함수가 정의되어 프로그램이 실행되게 되면 메모.. 2019. 12. 19.
[C++ 기본 공부정리] 11-3. 재귀함수(recursive function) 공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 먼저 재귀의 뜻을 알아보면, 재귀(recursion)의 정의는 어떤 것을 정의할 때 자기 자신을 참조하는 것을 뜻한다. 즉, 재귀 함수란 재귀 호출(recursive call)을 사용하는 함수이다. 재귀 호출은 어떤 함수가 내부에서 자기 자신을 다시 호출하는 것을 뜻한다. 재귀 호출을 사용할 경우 언제 호출을 그만둘 것인지를 정의해야 한다. 그렇지 않으면 무한루프처럼 계속 자기 자신을 호출하게 되므로 종료를 위한 조건을 가진 명령문을 포함해야 한다. 재귀 함수 동작 동작 원리는 함수가 명령을 수행한 뒤 자기 자신을 다시 호출한다. 재귀 호출을 종료할 조건을 만나게 되면 이전 자기 자신에서 자신을 호.. 2019. 12. 18.
[C++ 기본 공부정리] 11-2. 함수의 매개변수(parameter), 인수(argument) 공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 함수가 반환 값을 통해 호출한 곳으로 돌아가 값을 돌려주는 것을 확인하였다. 함수를 이용함에 있어 반환값을 통해 값을 돌려주는 것 뿐만 아니라 함수의 기능을 이용하기 위해 함수에게 값을 전달하는것 또한 필요하다. 이때 사용되는 변수가 매개변수(parameter) 와 인수(argument)이다. 두 변수의 차이점을 알아 두자. 1. 매개변수와 인수 함수의 매개변수(parameter)는 함수가 정의될때 전달 되는 인수를 함수 내부에서 사용할 수 있도록 하는 변수이다. 함수명(매개변수1, 매개변수2, ..) 로 사용할 수 있으며 , 를 통해 여러 값을 구분한다. 함수의 인수(argument)는 함수를 사.. 2019. 12. 8.
[C++ 기본 공부정리] 11-1. 함수(function) 기본 공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 1. 함수 정의 함수란 특정 작업을 수행하기 위해 설계된 재사용 가능한 코드의 집합이다. main() 또한 함수이며 main 이외에도 다양한 함수를 정의하여 사용 한다. main에서 함수의 호출을 만날경우 현재 진행중인 함수를 일시정지하고 호출한 함수를 수행하도록 cpu에 지시하여 호출된 함수를 순차적으로 수행한다. 함수가 종료될경우 호출한 곳으로 돌아가 마저 수행한다. 함수 선언) 함수의 선언은 위와 같다. 여기서 int는 함수의 반환 타입 func은 함수명 ()안의 변수는 매개변수 {}는 함수의 몸체이다. 1. 반환 타입(return types) : 함수가 정의된 기능을 끝마친뒤 반환할 데이터 .. 2019. 12. 5.
[C++ 기본 공부정리] 10. 공용체(union), 열거체(enum) 공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 다양한 경우에 대비하기 위해 사용자가 직접 정의하는 사용자 정의형 타입인 구조체를 정리했다. 이번에는 구조체처럼 사용자 정의형 타입인 공용체와 열거체에 대해 정리하자. 1. 공용체(union) 공용체는 구조체와 매우 흡사 하지만 메모리 할당받는 부분에서 차이점이 존재한다. 공용체의 모든 멤버는 같은 메모리 공간에 자리 잡는다. 가장 큰 멤버 변수의 크기로 메모리를 할당받아 같은 공간에 자리잡기 때문에 한 번에 하나의 멤버 변수만 사용할 수 있다. 따라서 메모리의 크기가 제한되어 있거나 메모리를 절약하고 싶을 때 유용하지만 하나의 데이터 사용 후 데이터를 변경할 경우 원래의 데이터를 잃어버린 다는 단.. 2019. 12. 3.
[C++ 기본 공부정리] 9. 구조체(struct) 공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 1. 구조체 어떤 객체를 표현할때 1가지의 변수 만으로는 부족한 경우가 있다. 예를 들어 학생이란 객체를 표현 하려한다면 이름, 나이, 학교, 학년, 학번, 전공 등등의 다양한 특징에 대한 변수가 필요하게 된다. 학생이 1명뿐이라면 이렇게 6개변수를 일일이 선언하여 사용하여도 상관없지만 학생수가 많아 진다면 학생이 추가될때마다 일일이 새롭게 6개 변수를 추가해야 한다. 이런 점을 극복하기 위해 C++에서는 여러 개별 변수를 그룹화 하여 하나의 데이터 유형으로 생성할 수 있는 구조체를 제공한다. 배열이 같은 타입의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것.. 2019. 12. 1.