本文共 548 字,大约阅读时间需要 1 分钟。
(1) 函数返回值为引用时,若返回栈变量,不能成为其它引用的初始值,不能作为左值
(2) 函数返回值为引用时,若返回的是静态变量或者全局变量,可以成为其他引用的初始值,既可以作为左值,也可以作为右值。具体看如下代码:
#includeusing namespace std;int getAA1(){ int a ; a = 10; return a;}//返回a的本身 返回a的一个副本 10 int& getAA2(){ int a ; //如果返回栈上的 引用, 有可能会有问题 a = 10; return a;}int* getAA3(){ int a ; a = 10; return &a;}void main1101(){ int a1 = 0; int a2 = 0; a1 = getAA1(); a2 = getAA2(); //10 int &a3 = getAA2(); //若返回栈变量 不能成为其它引用的初始值 printf("a1:%d \n", a1); //输出10 printf("a2:%d \n", a2); //输出10 printf("a3:%d \n", a3); // *a3,输出乱码 cout<<"hello..."<
转载地址:http://gqzmi.baihongyu.com/