추천, 2024

에디터의 선택

포인터와 참조의 차이점

"포인터"와 "참조"둘 다 다른 변수를 가리 키거나 참조하는 데 사용됩니다. 그러나 두 변수의 기본적인 차이점은 포인터 변수가 메모리 위치가 저장된 변수를 가리킨다는 것입니다. 참조 변수는 할당 된 변수의 별칭입니다. 아래의 비교 차트는 포인터와 참조 사이의 다른 차이점에 대해 설명합니다.

비교 차트

비교 근거바늘참고
기본포인터는 변수의 메모리 주소입니다.참조는 변수의 별칭입니다.
보고포인터 변수는 포인터 변수 '*'앞에 포인터 변수에 저장된 주소에있는 값을 반환합니다.참조 변수는 참조 기호 '&'가 앞에 오는 변수의 주소를 반환합니다.
연산자*, ->&
Null 참조포인터 변수는 NULL을 참조 할 수 있습니다.참조 변수는 절대로 NULL을 참조 할 수 없습니다.
초기화초기화되지 않은 포인터를 만들 수 있습니다.초기화되지 않은 참조는 절대로 만들 수 없습니다.
초기화 시간포인터 변수는 프로그램의 어느 시점에서나 초기화 될 수 있습니다.참조 변수는 생성시에만 초기화 될 수 있습니다.
재 초기화포인터 변수는 필요한만큼 여러 번 다시 초기화 할 수 있습니다.참조 변수는 프로그램에서 다시 초기화 할 수 없습니다.

포인터의 정의

"포인터"는 다른 변수의 메모리 위치를 보유하는 변수입니다. 포인터 변수가 사용하는 연산자는 * 및 ->입니다. 포인터 변수의 선언에는 기본 데이터 형식 뒤에 '*'기호와 변수 이름이옵니다.

 유형 * var_name; 

예를 통해 포인터를 이해합시다.

 int a = 4; int * ptr = & a; cout < 

여기에는 정수 변수 a와 변수 a의 주소를 저장하는 포인터 변수 ptr이 있습니다.

포인터 산술

포인터 변수는 "더하기"및 "빼기"와 같은 두 개의 산술 연산자로 조작 할 수 있습니다. 추가는 "증분"이라고하고 빼기는 "감소"라고합니다. 포인터 변수가 증가 할 때 포인터 변수는 기본 유형의 다음 변수의 메모리 위치를 가리 킵니다. 포인터 변수가 감소하면 기본 유형의 이전 변수의 메모리 위치를 가리 킵니다. 따라서 배열은 포인터 변수로 효율적으로 액세스 할 수 있습니다.

다중 간접 참조

포인터는 목표 값을 가리키는 다른 포인터 변수를 가리 킵니다. 이런 종류의 포인터는 항상 다른 포인터 변수의 주소로 초기화됩니다. 포인터에 대한 포인터의 선언은 다음과 같습니다.

 ** var_name;을 입력하십시오. 

예를 들어 그것을 공부합시다.

 int a = 4; int * ptr1 = & a; int ** ptr2 = & ptr1; cout < 

함수 포인터

함수가 변수가 아니라는 것을 알기 때문에 포인터 변수에 할당 할 수있는 메모리 위치를 여전히 가지고 있습니다. 포인터가 함수를 가리키면 해당 함수 포인터로 함수를 호출 할 수 있습니다.

포인터에 대해 기억해야 할 중요한 사항.

  • 포인터 변수는 초기화없이 만들 수 있으며 프로그램의 어느 위치에서나 초기화 할 수 있습니다.
  • 포인터 변수는 다른 변수로 다시 초기화 될 수 있습니다.
  • 포인터 변수는 NULL을 참조 할 수 있습니다.

참조 정의

참조 변수는 해당 참조 변수에 지정된 변수를 참조하는 데 사용됩니다. 참조 변수가 사용하는 연산자는 '&'입니다. 참조 변수의 선언에는 기본 유형과 '&'기호, 변수 이름이 차례로 포함됩니다.

 & refer_var_name = var_ 이름 입력; 

여기서 유형은 데이터 유형이고 & 연산자는 참조 변수임을 확인합니다. refer_var_name은 참조 변수의 이름입니다. var_name은 참조 변수가 참조하게하려는 변수의 이름입니다.

예제를 통해 참조 변수를 이해합시다.

 int a = 4; int & b = a; // b는 ab = 6을 나타냅니다. // 이제 a = 6 

여기서 int 유형의 변수에는 값 4가 지정됩니다. 참조 변수에는 변수 a가 지정됩니다. 즉, b는 a의 별명입니다. 이제 b에 다른 값을 할당 할 때 a의 값을 수정합니다. 따라서 참조 변수에 대한 변경은 해당 참조 변수에서 참조하는 변수에서도 발생한다고 볼 수 있습니다.

가장 중요한 점은 참조 변수가 생성 당시에 초기화되어야한다는 것입니다. 참조 변수가 변수로 초기화되면 다른 변수를 참조하도록 다시 초기화 할 수 없습니다. 참조 변수에 값을 할당하는 순간 참조 변수가 가리키는 변수에 해당 값을 할당합니다. 참조 변수는 절대로 NULL을 참조 할 수 없습니다. 참조 변수에 대해 산술 연산을 수행 할 수 없습니다.

참조 변수는 세 가지 방법으로 사용할 수 있습니다.

  • 함수 반환 값으로.
  • 함수 매개 변수로 사용됩니다.
  • 독립 실행 형 참조로.

포인터와 참조의 주요 차이점

  1. 참조는 다른 이름으로 참조 될 수 있도록 변수를 참조하는 다른 이름을 만드는 것과 같습니다. 반면 포인터는 단순히 변수의 메모리 주소입니다.
  2. 포인터 변수 앞에 '*'가 있으면 주소가 포인터에 저장되어있는 변수의 값을 반환합니다. 참조 변수 앞에 '&'가 있으면 해당 변수의 주소가 반환됩니다.
  3. 포인터 연산자는 * 및 -> 반면, 참조 연산자는 &입니다.
  4. 포인터 변수는 null을 가리키는 변수의 주소를 포함하지 않습니다. 반면에 참조 변수는 결코 Null을 참조 할 수 없습니다.
  5. 단위 화 된 포인터 변수는 항상 만들 수 있지만 참조 변환을 만들 수 없도록 일부 변수의 별칭이 필요할 때 참조를 만듭니다.
  6. 포인터를 다시 초기화 할 수는 있지만 일단 피처를 초기화하면 다시 초기화 할 수 없습니다.
  7. 빈 포인터를 만들고 언제든지 초기화 할 수 있지만 참조를 만들 때만 refrence를 초기화해야합니다.

노트 :

Java는 포인터를 지원하지 않습니다.

결론

포인터와 참조는 모두 다른 변수를 가리 키거나 참조하는 데 사용됩니다. 그러나 둘 다 사용법과 구현이 다릅니다.

Top