[c++] C언어 기반의 C++ (2)

조히·2023년 4월 12일
0
post-thumbnail

실행중인 프로그램의 메모리 공간

  • 데이터 : 전역변수와 static이 저장되는 영역
  • 스택 : 지역변수 및 매개변수가 저장되는 영역
  • 힙 : 동적할당이 이뤄지는 영역

참조자(Reference)

자신이 참조하는 변수를 대신할 수 있는 또 하나의 이름
int num1 = 2010;
int &num2 = num1;
변수에 별명을 붙여준다 생각하면 됨

참조자 수에는 제한이 없고, 참조자를 대상으로 참조자 선언 가능

참조자는 선언과 동시에 변수를 참조해야함
따라서,
int &ref=20; (x)
int &ref; (x)
int &ref=NULL; (x)

Call-by-value & Call-by-reference

  • Call by value : 값을 인자로 전달하는 함수의 호출방식
  • Call by reference : 주소 값을 인자로 전달하는 함수의 호출방식
    함수 외부에 선언된 변수에 접근을 위해 Call by reference를 사용

참조자를 이용한 Call by reference

void Swap(int &ref1, int &ref2)
{
	int tmp = ref1;
    ref1 = ref2;
    ref2 = tmp;
}

const 참조자

void HappyFunc(const int &ref) {...}
참조자를 이용한 호출 방식은 값이 변경될 가능성이 있기 때문에 const로 값 변경을 막음

const int &ref=30;
상수화된 변수. const 참조자는 상수도 참조 가능
-> 다음과 같이 사용가능

int Adder(const int &num1, const int &num2)
{
	return num1+num2;
}

cout<<Adder(3,4)<<endl;

malloc & free를 대신하는 new & delete

  • int형 변수의 할당 : int * ptr1 = new int;
  • 길이가 3인 int형 배열의 할당 : int * arr1 = new int[3];
  • 앞서 할당한 int형 변수의 소멸 : delete ptr1;
  • 앞서 할당한 int 형 배열의 소면 : delete []arr1;
profile
Juhee Kim | Game Client Developer

0개의 댓글