type &变量名表示给某一个已经初始化的变量取别名,后续变量名等价于原变量。
Int data=10;
Int &a=data;
cout<<a<<endl;//10
注意,引用必须在初始化的时候就被定义,且已经初始化后不能再进行修改。后续中&a则等价于&data,即对data取地址。
定义数组:
方法一:直接替代
注意:&myarr需要加个小括号,否则[]的优先级更高,会变成从第5个元素开始才是arr[0]
方法二:先用typedef定义数组类型,再用定义变量的方式给数组取别名
引用的最终目的:在调用函数(方法)时,可以通过(int &a,int &b)的方式达到传地址的效果,函数内部对a,b修改后可以直接改变主函数的值,而不需要使用指针来实现。
引用作为函数返回值 函数调用可以当作返回值变量别名看待
(这里的static 为静态全局变量,只要创建了之后就会一直存在)
指针引用
1是常规的写法,C语言可以使用。其中传参类型是char*的地址,所以类型是char**,通过指针的形式对原函数的参数进行修改。
2是C++的写法,利用了引用区别名,将主函数的str直接取别名为my_str,使其在函数中可以直接对原变量进行修改。