关于c++中引用的问题

关于c++中引用的问题

下列的代码,

int main(){
    int a=10;
    int &b=a;
    a=100;
    cout<

b引用a时,写作int &b=a;

但当a作函数返回值时,正确的代码如下:

int& test()
{
    static int a=10;
    return a;
}
int main(){
    int &b=test();
    return 0;
}

提问:为什么a作函数返回值时返回的类型不是int而是int&呢,是c++语法中的硬性规定吗?

img


函数的返回值的类型一般都是由定义的函数类型决定的,除非进行强制转换。你定义的函数类型就是int&,所以默认返回值也是
望采纳!