傳址參考(called by reference)
#include <bits/stdc++.h>
using namespace std;
int print(vector<int> &v){
for(int i=0;i<v.size();i++) cout<<v[i]<<" ";
v[0]=0;
}
int main()
{
vector<int> v={4, 5, 8, 3, 7, 1, 2, 6, 10, 9};
print(v);
cout<<endl;
for(int i=0;i<v.size();i++) cout<<v[i]<<" ";
return 0;
}
輸出:
4 5 8 3 7 1 2 6 10 9
0 5 8 3 7 1 2 6 10 9
傳值參考
#include <bits/stdc++.h>
using namespace std;
int print(vector<int> v){
for(int i=0;i<v.size();i++) cout<<v[i]<<" ";
v[0]=0;
}
int main()
{
vector<int> v={4, 5, 8, 3, 7, 1, 2, 6, 10, 9};
print(v);
cout<<endl;
for(int i=0;i<v.size();i++) cout<<v[i]<<" ";
return 0;
}
輸出:
4 5 8 3 7 1 2 6 10 9
4 5 8 3 7 1 2 6 10 9
結論:
傳值參考會複製一份變數,速度較慢,不會影響原變數