C: 인수 전달 "값 기준"과 "참조 기준"의 차이점
C에서 매개변수와 매개변수 간의 상호작용 인수는 매개변수의 유형에 따라 결정됩니다. 값 전달이 일반적이지만 참조 전달은 특정 시나리오에서 뚜렷한 이점을 제공합니다.
참조 전달의 이유
참조 전달은 두 가지 주요 목적으로 사용됩니다.
예: 인수 값 수정
다음 기능을 고려하세요.
<code class="cpp">void get5and6(int *f, int *s) { *f = 5; *s = 6; }</code>
여기서 포인터는 참조로 인수를 전달하는 데 사용됩니다. 다음을 사용하여 함수를 호출하면
<code class="cpp">int f = 0, s = 0; get5and6(&f, &s);</code>
f와 s는 각각 5와 6으로 설정됩니다. 함수가 참조가 가리키는 값을 수정하기 때문입니다.
또는 참조를 사용하여 직접 동일한 결과가 나옵니다.
<code class="cpp">void get5and6(int &f, int &s) { f = 5; s = 6; }</code>
다음을 사용하여 함수를 호출하면
<code class="cpp">int f = 0, s = 0; get5and6(f, s);</code>
동일한 효과가 나타납니다.
예: 성능 최적화
게임 상태를 저장하는 함수를 생각해 보세요.
<code class="cpp">void SaveGame(GameState& gameState) { gameState.update(); gameState.saveToFile("save.sav"); }</code>
참조 전달이 없으면 GameState 개체의 복사본이 함수 내부에 생성되어 잠재적으로 상당한 리소스를 소비하게 됩니다. 참조로 전달하면 객체의 주소만 복사되므로 큰 내용을 복사하는 오버헤드가 발생하지 않습니다.
참조를 사용하는 경우
참조 전달은 다음과 같은 경우에 유리합니다. :
Const 참조
Const 참조는 인수가 함수 내에서 수정될 수 없도록 보장합니다. 특정 매개변수에 대한 읽기 전용 액세스를 강제하는 데 사용됩니다.
위 내용은 ## C: 인수를 값으로 전달해야 할 때와 참조로 전달해야 하는 경우는 언제인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!