2016-07-05 42 views
-3

如果我通过引用传递载体来的函数:为什么如果我使用引用,在使用operator []之前,我不需要遵循向量?

void QuadraticInterpolateArray(vector<double> &b) { 
    double step = 12.2; 
    for (int j = 0; j < b.size(); j++) { 
     b[j] = step; 
    } 
} 

我不以后需要遵从b当我需要通过使用操作符[]进入到它的值。相反,如果我通过指针传递向量:

void QuadraticInterpolateArray(vector<double> *b) 

我以后需要(* b)[j]。

在这两种情况下,我都通过该向量的“地址”。 为什么参考它的工作和指针不?它只是设计?

+4

你永远不会“引用”引用。你只取消引用指针。 –

+0

你有什么错误? –

+0

另请参见[* C++中的引用变量是什么?*](http://stackoverflow.com/questions/2765999/what-is-a-reference-variable-in-c) – juanchopanza

回答

1

因为引用会被编译器自动解引用。

这是C++引入的,用于简化C的指针。

是的,这是一个设计选择。

+0

引用了引用以容纳运算符重载。 –

+0

是的,用指针会很难。 –

相关问题