C에서 참조로 배열 전달
C에서는 참조로 배열을 함수 인수로 전달하는 것이 일반적으로 허용됩니다. 함수 내의 배열은 호출 코드에 반영됩니다. 그러나 최근 컴파일러 오류로 인해 이러한 관행에 대한 의문이 제기되었습니다.
왜 "void foo(double& bar)"가 허용되지 않습니까?
"void foo( double& bar)"는 foo 함수에 이중 배열 참조를 전달하려고 시도합니다. 그러나 C에서는 이 접근 방식을 지원하지 않습니다. 배열은 주로 개별 요소 자체가 아닌 참조로 전달됩니다.
참조로 배열을 전달하는 올바른 방법
참조로 배열을 올바르게 전달하려면 다음을 사용하세요. 다음 구문은 다음과 같습니다.
void foo(double (&bar)[10]);
이 예에서 "bar"는 참조로 전달된 10개의 요소가 있는 double 배열을 나타냅니다. 이렇게 하면 foo 내에서 "bar"에 대한 모든 변경 사항이 호출 코드에서도 발생하게 됩니다.
대체 솔루션
참조로 배열을 전달하는 것이 종종 피하기 위해 선호됩니다. 불필요한 복사 및 성능 문제. 그러나 참조로 전달될 때 배열은 고정된 크기여야 한다는 점에 유의하는 것이 중요합니다. 임의 크기의 배열이 필요한 경우 다음 대안을 고려하십시오.
위 내용은 C에서 참조로 배열을 올바르게 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!