一、什么情况下返回的引用无效?什么情况下反回常量的引用无效?
知识点1:返回的引用无效:局部临时变量或者局部对象的引用对于返回都是无效的,因为在函数终止之后,局部变量或者对象的引用不再指向有效的内存区域。若是常量在函数调用之前存在,引用即可用。
知识点2:可以对返回值是非常量引用的函数结果赋值。
**来!举个例子来理解一下啊!!!**
#include <iostream>
#include<string>
using namespace std;
char &Get_val(string &a, int ix)//函数的声明及定义,接受两个参数,返回类型为非常量引用
{
return a[ix];//字符串某一位置的字母
}
int main(int argc, char *argv[])
{
string s = "an apple ";
cout << "字符串修改前为:" << s << endl;
Get_val(s, 0) = 'A';//可以对非常量的引用返回值赋值
cout << "字符串修改后为:" << s << endl;
return 0;//代表执行成功
}
二、编写一个递归函数,输出vector对象的内容。
#include <iostream>
#include<string>
#include<vector>
using namespace std;
void Get_val(vector<int> a, int ix)//函数的声明及定义,