>백엔드 개발 >C++ >C에서 포인터는 어떻게 전달됩니까? 값으로 또는 참조로?

C에서 포인터는 어떻게 전달됩니까? 값으로 또는 참조로?

Linda Hamilton
Linda Hamilton원래의
2024-12-04 21:26:12891검색

How are Pointers Passed in C  : By Value or By Reference?

C에서 포인터 전달: 값으로 전달 또는 참조로 전달?

질문:

C에서 전달할 때 포인터 인수는 값 전달로 동작합니까, 아니면 전달로 동작합니까? 참조?

답변:

포인터는 C에서 값으로 전달됩니다. 즉, 가리키는 개체의 주소가 함수 매개 변수에 복사됩니다. 이는 두 가지 시나리오를 암시합니다:

  • 함수 내 포인터 변수(주소)에 대한 변경 사항은 외부 포인터에 반영되지 않습니다.
  • 그러나 포인터 역참조를 통해 변경된 사항(수정 가리키는 객체)는 함수 외부에 반영됩니다.

포인터 대 포인터 전달:

포인터 값 자체를 변경하는 것이 목표인 경우(다른 개체를 가리킴) 포인터에 대한 포인터가 필요합니다. 이는 포인터를 함수에 전달할 때 포인터 이름 앞에 이중 앰퍼샌드(&&)를 사용하여 수행됩니다. 이 방법은 C의 표준 관행입니다.

참조와 포인터 비교:

C에서는 여러 가지 이유로 포인터보다 참조가 선호됩니다.

장점 참고 자료:

  • 함수 본문의 구문 노이즈 감소
  • 최적화가 가능하도록 컴파일러에 추가 정보 제공

참고문헌:

  • Break 매개변수 동작에 더 많은 주의가 필요한 C의 값별 전달 규칙
  • C에서는 지원되지 않음

특정 사례: 포인터 대 참조

포인터 대 포인터 전달의 경우 참조 사용과의 주요 차이점은 단순성입니다. 외부 포인터에 대한 참조를 전달하면 두 수준의 간접 참조가 모두 제거되어 보다 간단한 접근 방식을 제공할 수 있습니다.

위 내용은 C에서 포인터는 어떻게 전달됩니까? 값으로 또는 참조로?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.