2024/01 107
-
-
1.2.2 참조형 함수의 전형적인 패턴은 0개 또는 1개 이상의 파라미터를 받아서 계산을 하고 하나의 결괏값을 리턴하는 것이다. 하지만 이런 패턴이 맞지 않는 경우도 있다. 리턴하고 싶은 결곽값이 2개 이상일 수도 있고, 파라미터로 넘겨진 변수를 함수에서 변경해주길 원할 수도 있다. 이런 경우 C에서는 변수 대신 변수의 포인터를 전달하여 해결한다. 이러한 방법의 유일한 단점은 포인터 조작 때문에 코드가 지저분해지는것 이다. C++에서는 포인터 없이도 명시적으로 참조에 의한 전달(Pass by Referance)를 지원한다. 함수 파라미터의 정의부에서 각 파라미터 변수 이름 앞에 & 연산자를 붙이는 것이다. 사용법은 보통 변수와 동일하지만 내부적으로는 함수 안에서도 함수 호출 시 사용된 변수의 포인터가 사..
-
1.2.1 포인터와 동적 메모리 동적 메모리는 컴파일 타임에 크기를 정할 수 없는 데이터를 이용할 수 있게 해준다. 거의 모든 프로그램은 동적 메모리를 어떤 형태로든 이용하게 된다. 스택과 힙 C++ 애플리케이션이 사용하는 메모리는 스택(stack)과 힙(heap) 두가지로 나누어진다. 스택 메모리는 쌓여있는 카드에 비유할 수 있다. 가장 위에 놓인 카드는 프로그램의 상태를 나타내는데, 보통 현재 실행중인 함수에 관한것 이다. 현재 실행 중인 함수의 로컬 변수는 모두 가장 위에 놓인 카드, 즉 제일 위 스택에 위치한다. 만약 현재 실행 중인 함수 foo()가 또 다른 함수 bar()를 호출한다면 새로운 스택 프레임 이 생성되고, bar() 함수를 호출할 때 넘겨진 파라미터가 foo()의 스택 프레임에서 ..
-
참조형 변수 (Reference Types) 동작방식 참조형 변수는 기존 변수의 별칭(alias)이며, 동일한 메모리 주소를 가리킨다. 선언시 반드시 초기화 되어야 한다. 값에 의한 복사가 아닌, 원본 변수와 동일한 메모리를 공유함으로 한쪽에서 변경이 다른쪽에 반영된다. int main() { int original = 5; int &refVar = original; // 참조형 변수 선언 refVar += 10; // original은 이제 15이다. original -= 5; // refVar은 이제 10이다. return 0; }
-
-