C ++&数组和数组的用法有什么区别?

时间:2017-02-15 22:02:01

标签: c++ arrays

最近,当我需要将它作为对C ++中另一个函数的引用传递时,我遇到了使用数组地址的问题。例如:

void do_something(float * arr, int size) {
    //Will do something about the arr
}

int main () {
    float array[] = {1, 2, 3, 4};
    do_something(array, 4);  // this will work well
    do_something(&array, 4); // this will cause error
    return 0;
}

但是当我尝试打印出数组和&数组时,它们是相同的。你们知道这是什么原因吗?

1 个答案:

答案 0 :(得分:1)

以下是使用std::vector

进行此操作的方法
#include <vector>

void do_something(const std::vector<float>& arr) {
  // Use arr for whatever.
}

int main() {
   std::vector<float> arr = { 1, 2, 3, 4 };

   do_something(arr);

    return 0;
}

此初始化程序需要C ++ 11模式,如果打开该标志,大多数编译器都会支持该模式。