Bereichsbasierte For-Schleife für ein Array, das an eine Nicht-Hauptfunktion übergeben wird
In C kann eine bereichsbasierte For-Schleife sein Wird verwendet, um über ein Array zu iterieren. Wenn ein Array jedoch an eine Nicht-Hauptfunktion übergeben wird, zerfällt es in einen Zeiger und verliert seine Größeninformationen.
Um dieses Problem zu beheben und die Verwendung einer bereichsbasierten for-Schleife zu ermöglichen, muss das Array sollte referenziert werden, anstatt als Zeiger übergeben zu werden. Dadurch bleiben die Größeninformationen des Arrays erhalten. Hier sind die modifizierten Beispiele, die den richtigen Ansatz veranschaulichen:
<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; } } // Generic implementation template <std::size_t array_size> void foo(int (&bar)[array_size]) { for (int i : bar) { cout << i << endl; } }</code>
Das obige ist der detaillierte Inhalt vonWie kann ich eine bereichsbasierte for-Schleife für ein Array verwenden, das an eine Nicht-Hauptfunktion in C übergeben wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!