C++程序有关问题,下面的程序中 int &put(int n);是什么类型的函数,如何可以这样调用,小弟我很不明白,谁帮小弟我解释一下,多谢

C++程序问题,下面的程序中 int &put(int n);是什么类型的函数,怎么可以这样调用,我很不明白,哪位高手帮我解释一下,谢谢。
#include <iostream.h>

int &put(int n);
int vals[10];
int error=-1;
void main()
{
put(0)=10; //以put(0)函数值作为左值,等价于vals[0]=10;
put(9)=20; //以put(9)函数值作为左值,等价于vals[9]=20;
cout<<vals[0];
cout<<vals[9];
}
int &put(int n)
{
if (n>=0 && n<=9 ) return vals[n];
else 

cout<<"subscript error"; return error; 
}
}



------解决方案--------------------
put 函数返回的是一个对于全局变量的引用,就和直接操作全局变量一样
------解决方案--------------------
探讨

put 函数返回的是一个对于全局变量的引用,就和直接操作全局变量一样