C에서 포인터 인수 전달: 값으로 전달 또는 참조로 전달?
C에서 포인터를 전달하는 것은 일반적인 오해입니다. 인수는 값을 전달하는 것과 같습니다. 그러나 그렇지 않습니다.
포인터는 값으로 전달됩니다
포인터가 함수에 전달되면 포인터의 값이 포인터, 즉 포인터가 가리키는 메모리 주소가 함수의 로컬 메모리에 복사됩니다. 즉, 함수 내부의 포인터에 대한 변경 사항은 원래 포인터 변수에 영향을 주지 않습니다.
지정 값 변경
그러나 포인터가 가리키는 값에 대한 변경 사항은 원래 변수에 반영됩니다. 객체 자체가 아닌 포인터 자체가 원래 객체의 주소를 저장하기 때문입니다.
포인터 값 수정
내부의 포인터 값을 수정하려는 경우 함수를 사용하려면 포인터 대 포인터를 사용해야 합니다. 포인터를 포인터로 전달하면 원래 포인터의 주소가 함수에 복사됩니다. 이를 통해 함수 내에서 원래 포인터를 수정할 수 있습니다.
표준 관행
C에서는 포인터에 대한 포인터를 다음과 같이 사용하는 것이 허용되며 표준 관행으로 간주됩니다. 함수 내에서 포인터 값을 수정해야 할 때 인수입니다. 이는 C의 이후 버전까지 참조가 도입되지 않았기 때문에 C와 C에서 일반적인 기술입니다.
참조 대 포인터
현대 C에서는 참조가 선호됩니다. 여러 가지 이유로 포인터를 오버하는 경우:
단, C에서는 참조가 지원되지 않습니다. , 값별 전달 규칙을 위반합니다.
위 내용은 C 함수의 포인터: 값으로 전달합니까 아니면 참조로 전달합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!