C++ 的引用
C++ 的引用
int num = 10 ; //&和别名结合 表示引用 //引用和定义同时进行 int &a = num; //此时&为定义,相当于类型为 int &
注意 :引用必须初始化 !
一旦初始化,不能更改
2.数组的引用
int arr[5] = {10,20,30,40,50}; //假设引用名为my_arr int (&my_arr) [5] = arr; for(int i = 0;i<5 ;i ++) { cout<< my_arr[i] <<" " } cout<<endl;
//用 typedef 给数组类型取别名 int arr [5] = {100,20,330,40,50}; typedef int my_arr [5] ; //此时 my_arr 是一个数组类型 my_arr a = {1,2,3,4,5}; my_arr & b = arr; // 先用typedef 再用引用
3.函数的引用
void swap (int &a , int &b) { int tmp = a; a = b ; b =tmp; } void main() { int a = 10 , b = 15; swap (a,b) ; }
此时 传入的 是 a , b , swap ()函数修改的也是a , b ,但是 a和b 的值确实互换了
4. 引用作为函数返回值
int & my_data(void) { static int num = 10; return num; } void test() { int & ret = my_data(); }
注意:不能返回局部变量的引用,局部变量在函数结束后会释放!
5.指针的引用
void my_str(char ** p_str) { *p_str = (char *) calloc(1,32); //添加头文件#include<stdlib.h> strcpy(*p_str ,"hello world"); // #include<string.h> } void my_str2 ( char*(&my_str) ) { my_str = (char*)calloc(1,32); strcpy(*p_str , "hello world"); } void test () { char * str = NULL; my_str(&str); cout<<"my_str =" <<str<<endl; }

浙公网安备 33010602011771号