今天看到一段代码(代码中的函数是在一个struct里的):
long long & operator [] (const int &c) {
return a[c];
}
我已经知道了这个函数会返回a[c]的地址,那么请问普通的函数可不可以使用"&"来进行返回地址的操作?就像下面这样(我编译会报错)
int test & (int i)
{
return a[i];
}
请问你上下两个a的类型分别是什么
理解有误吧,&在声明中不是地址,而是引用。也就是说,其实返回了一个a数组第c个元素的‘别名’,虽然效果上跟地址类似,但确实不是一个东西。
int test & (int i) -> int& test (int i)
&出现在左值作用是引用,注意你的a的作用域,不然可能出错。