본문 바로가기

c++

04. C++만의 특징 2

 

공부를 하는 입장이기 때문에, 내용에 오류가 있을 수 있습니다. 오류가 있다면 적극적으로 알려주시면 감사합니다!

 

Reference

 참조자 같은 경우는 자신의 참조하는 변수를 대신할 수 있는 또 하나의 이름이라고 할수 있다. 쉽게 말하면, 변수의 또다른 이름을 만들어 주는 것을 말한다. 참조자를 사용하면 포인터의 기능을 사용할 수 있다.

 

int num1 = 10;
int &num2 = num1;

 

&를 사용하는 것으로 조금 더 직관적으로 num1의 주소를 num2도 사용한다고 생각 할 수 있다. 

 

 참조자는 포인터도 생성이 가능하다.

int num = 12;
int *ptr = #
int **dptr = &ptr;

int &ref=num;
int *(&pref) = ptr;
int **(&dpref) = dptr;

 

ptr = pref, dptr = dpref 이다.

 

주소값과 참조값

 

참조자는 함수로도 생성이 가능하다.

int & fun(int &ref){
  ref++;
  return ref;
}


...

int main(void){
  int num1 = 1;
  int &num2 = fun(num1)
  int &num3 = num1
  ...

 

 보면, 반환형도 참조자이고, 매개 변수도 참조자이다. 이때 매개 변수를 참조자로 불러 오게 된다면, call by reference형식으로 함수를 사용할 수 있다.  만약 위와 같이 사용한다면, num1=num2=num3 모두 이름만 다르고 같은 주소값을 참조하고 있다고 할 수 있다.

주소값

 

Dynamic Memory Allocation

 c++ 함수에서는 new 함수와 delete 함수를 사용하여 동적 메모리 할당을 할 수 있다. 

 

그냥 생성하고 해제만 하면 되기 때문에 더 이상의 설명은 하지 않겠다. 

'c++' 카테고리의 다른 글

[c++] 복사 생성자와 복사 대입 연산자  (1) 2024.04.29
[c++] Range-based for loop (범위 기반 for 문)  (1) 2024.04.25
03. C언어 복습  (0) 2024.01.04
02. C++만의 특징 1  (0) 2024.01.03
01. C++의 구조  (0) 2024.01.03