기술나눔

c 면접으로 가는 길을 배워라

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

참조와 포인터의 차이점은 무엇입니까?
  • 포인터와 참조는 모두 주소 개념입니다. 포인터는 메모리 조각을 가리키며 그 내용은 가리키는 메모리의 주소입니다. 참조는 특정 메모리 조각에 대한 별칭입니다.

  • 프로그램은 포인터 변수에 메모리 영역을 할당하지만 참조에는 할당하지 않습니다.

  • 포인터를 사용할 경우 앞에 *를 추가하면 참조를 바로 사용할 수 있습니다.

  • 참조는 정의될 때 초기화되며 나중에 변경할 수 없습니다. 즉, 참조된 객체는 변경할 수 없지만 포인터 객체는 변경할 수 있습니다.

  • 널 참조는 없지만 널 포인터는 있습니다. 이는 포인터를 사용하는 것보다 참조를 사용하는 코드를 더 효율적으로 만듭니다. 참조를 사용하기 전에 참조의 유효성을 테스트할 필요가 없기 때문입니다. 대조적으로, 포인터는 null이 되지 않도록 항상 테스트되어야 합니다.

  • 변수의 크기를 얻으려면 참조에 "sizeof"를 사용하고, 변수 주소의 크기를 얻으려면 포인터에 "sizeof"를 사용하십시오.

  • 이론적으로 포인터 수준 수에는 제한이 없지만 참조 수준은 하나만 있습니다. 즉, 참조에 대한 참조는 없지만 포인터에 대한 포인터는 있을 수 있습니다. int **p //법적, int