C++에서 레퍼런스와 포인터는 모두 메모리 주소를 저장하고 참조하는 방법입니다. 하지만 레퍼런스와 포인터는 몇 가지 중요한 차이점이 있습니다.
1.선언 방법
레퍼런스는 선언할 때 '&'를 사용합니다.
포인터는 '*'를 사용하여 선언합니다.
2.NULL 값
레퍼런스는 NULL 값을 가질 수 없습니다. 한 번 참조한 변수를 계속 참조합니다.
포인터는 NULL 값을 가질 수 있습니다. NULL은 포인터가 어떤 것도 가리키지 않음을 나타냅니다.
3.참조 대상 변경
레퍼런스는 참조 대상을 변경할 수 없습니다. 참조는 선언과 함께 참조 대상을 지정합니다.
포인터는 참조 대상을 변경할 수 있습니다. 포인터는 언제든지 다른 메모리 위치를 가리킬 수 있습니다.
4.연산자 사용
레퍼런스는 포인터 연산자(*, ->)를 사용할 필요가 없습니다. 참조 연산자(&)를 사용하여 변수의 참조를 얻습니다.
포인터는 포인터 연산자(*, ->)를 사용하여 참조 대상의 값을 가져올 수 있습니다.
둘 다 사용 가능한 연산자로는 주소 연산자(&)와 비교 연산자(==, !=)가 있습니다.
결론적으로, 레퍼런스와 포인터는 모두 변수의 주소를 참조하는 방법입니다. 하지만 레퍼런스는 보다 직관적이고 간결한 코드를 작성할 수 있고, 포인터는 유연성이 높고 포인터 연산 등의 다양한 기능을 지원합니다.
'c++' 카테고리의 다른 글
c++의 깊은복사와 얕은복사에 대해 알아보자 (0) | 2023.03.07 |
---|---|
c++ 레퍼런스에(& 대해 알아보자(Reference) (0) | 2023.03.06 |
c++ 포인터를 정말 쉽게 알아보자 (0) | 2023.03.05 |
C++ 클래스, 접근지정자 (0) | 2023.03.05 |
C++ 구조체 (struct) (0) | 2023.03.04 |