【发布时间】:2017-03-21 09:51:57
【问题描述】:
有一个数组:
int a = { 1 ,2 , 3}
我可以传递一个指向函数的指针来修改它。
int modify( int *a ){
a[0] = 10;
}
但是为什么我不能传递对 int 的引用来修改它呢?例如
int modify( int &a ){
a[0] = 10;
}
编译器如何处理引用?通过使用指针,我们传递了内存(在本例中为数组的第一个元素)。但是引用会发生什么?例如,为什么这行得通?
vector<int > a
void mod( vector<int> & a ){
a[0] = 10;
//a.push_back(10)
}
【问题讨论】:
-
int modify(int &a ){ a = 10; } -
你没有数组。应该是
int a[] = {1,2,3};