주요 함수가 아닌 함수에 전달된 배열의 범위 기반 for-Loop
주요 함수가 아닌 함수에 배열을 인수로 전달할 때 함수에서는 크기 정보 손실로 인해 범위 기반 for 루프가 실패할 수 있습니다. 이 문제를 해결하는 방법은 다음과 같습니다.
제공된 코드에서 bar를 foo에 전달할 때 포인터로 붕괴되어 크기가 손실됩니다. 배열 크기를 유지하려면 배열 참조 유형을 사용하여 참조로 전달할 수 있습니다.
<code class="cpp">void foo(int (&bar)[3]); int main() { int bar[3] = {1, 2, 3}; for (int i : bar) { cout << i << endl; } foo(bar); } void foo(int (&bar)[3]) { for (int i : bar) { cout << i << endl; } }
또는 모든 크기의 배열을 자동으로 허용하는 템플릿 함수가 포함된 일반적인 접근 방식을 사용할 수 있습니다.
<code class="cpp">template <std::size_t array_size> void foo(int (&bar)[array_size]) { for (int i : bar) { cout << i << endl; } } int main() { int bar[3] = {1, 2, 3}; for (int i : bar) { cout << i << endl; } foo(bar); }</code>
배열 크기 정보를 보존함으로써 배열을 함수에 전달할 때 범위 기반 for 루프를 성공적으로 사용할 수 있습니다.
위 내용은 C의 비주요 함수에 전달된 배열과 함께 범위 기반 For 루프를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!