让我举一个例子来理解我的问题:
void fct1()
{
int T[20];
int* p=T;//the goal is to modify this pointer (p)
fct2(&p);
}
void fct2(int** p)
{
(*p)++;//this will increment the value of the original p in the fct1
}
我想要的是避免使用指针并仅使用引用来实现它,它可能吗?
答案 0 :(得分:1)
是的,可以使用参考文献来完成。
void fct2(int* &p) {
p++;
}
答案 1 :(得分:0)
如果可能的话,我建议使用std::array
提供的迭代器:
void fct1()
{
std::array<int, 20> l;
auto it = l.begin();
fct2(it);
}
template<class I>
void fct2(I& it)
{
++it;
}