c ++中的所有内容,包括STL容器,都通过value传递。但是Array是例外,它由指针传递。对吧?
为什么c ++中的数组[eg:int a [5]]通过指针传递,而矢量通过值传递? [默认]
编辑:好的,std::array
也可以通过值传递,我当时并不知道。
代码:
void fun_array(int a[]) { a[0]=10; } void fun_vector(vector<int> v) { v[0]=10; } int main() { int a[5]={1,2,3,4,5}; vector<int> v={1,2,3,4,5}; fun_array(a); fun_vector(v); cout<<a[0]<<" "<<v[0]; }
输出:10 1
c ++中的所有内容,包括STL容器,都通过value传递。但是Array是例外,它由指针传递。对?为什么c ++中的数组[例如:int a [5]]由指针传递...
如果不另外指定,则所有内容均按值传递。关于C数组的情况也不例外,只是它们退化为指针。如果您需要在C ++代码中使用固定大小的数组,请使用std::array
而不是C数组。
默认情况下,all