开发者社区> 问答> 正文

C ++通过引用传递数组

是否允许通过引用传递数组?

void foo(double& *bar) 似乎我的编译器说不。为什么?通过引用传递数组的正确方法是什么?还是可以解决?我有一个数组参数,我的方法应修改该参数,然后再检索。另外,我可以使该数组成为一个类成员,可以很好地工作,但是它对我代码的其他部分有很多缺点(我想避免)。

谢谢并恭祝安康。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-09 12:18:51 459 0
1 条回答
写回答
取消 提交回答
  • 数组只能通过引用传递,实际上:

    void foo(double (&bar)[10]) { } 这样可以防止您执行以下操作:

    double arr[20]; foo(arr); // won't compile 为了能够将任意大小的数组传递给foo,使其成为模板并在编译时捕获该数组的大小:

    template<typename T, size_t N> void foo(T (&bar)[N]) { // use N here } 你应该认真考虑使用std::vector,或者如果你有一个编译器,支持C ++ 11 std::array。

    2020-02-09 12:19:06
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载