참조
변수를 참조로 선언하면 기존 변수의 대체 이름이 됩니다.
구문
Type &newname = existing name;
초기화
Type &pointer; pointer = variable name;
포인터
포인터는 변수의 주소를 저장하는 데 사용됩니다.
구문
Type *pointer;
초기화
Type *pointer; pointer = variable name;
참조와 포인터의 주요 차이점은 -
-
참조는 다른 이름의 기존 변수를 참조하는 데 사용되는 반면 포인터는 변수의 주소를 저장하는 데 사용됩니다.
-
참조는 null 값을 할당할 수 없지만 포인터는 할당할 수 있습니다.
-
참조 변수는 값으로 참조할 수 있는 반면 포인터는 참조할 수 있지만 참조로 전달할 수 있습니다.
-
참조는 선언 시 초기화되어야 하지만 포인터의 경우 필요하지 않습니다.
-
참조는 원래 변수와 동일한 메모리 주소를 공유하지만 스택에서 약간의 공간을 차지하는 반면 포인터는 스택에서 자체 메모리 주소와 크기를 갖습니다.