传递给非主函数的数组上基于范围的 for 循环
在 C 中,基于范围的 for 循环可以是用于迭代数组。但是,当数组传递给非主函数时,它会衰减为指针,从而丢失其大小信息。
为了解决此问题并启用基于范围的 for 循环,数组应该被引用而不是作为指针传递。这保留了数组的大小信息。以下是演示正确方法的修改示例:
<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>
以上是如何在传递给 C 中非主函数的数组上使用基于范围的 for 循环?的详细内容。更多信息请关注PHP中文网其他相关文章!