> 백엔드 개발 > C++ > C 포인터 인수가 실제로 값으로 전달됩니까?

C 포인터 인수가 실제로 값으로 전달됩니까?

DDD
풀어 주다: 2024-12-15 02:37:09
원래의
183명이 탐색했습니다.

Is C   Pointer Argument Passing Truly Pass-by-Value?

C에서 포인터 인수 전달이 값으로 전달됩니까?

C에서 포인터 인수 전달은 실제로 값으로 전달됩니다. 이는 포인터 변수의 내용(포인팅된 개체의 주소)의 복사본이 함수에 전달된다는 의미입니다.

함수 본문 내의 포인터 값에 대한 수정 사항은 외부의 원래 포인터에 영향을 주지 않습니다. 기능. 그러나 가리키는 객체의 값에 대한 변경 사항은 반영됩니다.

포인터 대 포인터를 함수 인수로 사용

함수 내에서 포인터 값 자체를 수정하려면, 포인터에 대한 포인터를 인수로 사용해야 합니다. 이 기술은 허용 가능하며 이러한 시나리오에 대한 표준 절차입니다. 포인터 인수 앞에 & 연산자를 사용하면 포인터의 주소가 전달됩니다.

참조 대 포인터

이 동작을 달성하기 위해 포인터를 사용하는 것은 일반적인 관행입니다. , C에서는 여러 가지 이유로 일반적으로 참조 사용이 포인터보다 선호됩니다.

  • 함수의 구문 복잡성 감소 bodies
  • 컴파일러에 더 많은 정보 제공

참조의 단점

  • 값별 전달 규칙을 깨고, 매개변수 동작에 주의가 필요함
  • 지원되지 않음 C

포인터에 대한 포인터의 특정 경우에는 참조를 사용하면 구현이 단순화됩니다. 대신 단일 참조를 전달하여 포인터 수준을 완전히 제거하는 것도 가능할 수도 있습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿