1 #include<iostream> 2 using namespace std; 3 //1 引用的概念 4 //2 属于C++编译器对C的扩展,不能用C语言的语法去思考它 5 void main1() 6 { 7 int a = 10; 8 //引用的语法:Type& name=var; 9 int &b = a;//b是a的别名,可通过b操作a 10 b = 100;//相当于把a修改成了100了 11 printf("b:%d\n", b); 12 printf("a:%d\n", a); 13 a = 200; 14 printf("b:%d\n", b); 15 printf("a:%d\n", a); 16 system("pause"); 17 return; 18 } 19 //3 普通引用必须要初始化 20 void main2() 21 { 22 int a = 10; 23 int &b = a; 24 //int &c; 25 system("pause"); 26 } 27 28 //基础类型的引用 29 void myswap(int a, int b) 30 { 31 int c; 32 c = a; 33 a = b; 34 b = c; 35 } 36 37 void myswap2(int *a, int *b) 38 { 39 int c; 40 c = *a; 41 *a = *b; 42 *b = c; 43 } 44 45 //4 引用作为函数参数声明时不进行初始化 46 void myswap3(int &a, int &b) 47 { 48 int c; 49 c = a; 50 a = b; 51 b = c; 52 } 53 54 void main() 55 { 56 int x, y; 57 x = 10; 58 y = 20; 59 myswap(x, y); 60 printf("x:%d,y:%d\n", x, y); 61 62 myswap2(&x, &y); 63 printf("x:%d,y:%d\n", x, y); 64 65 //a就是x的别名,b就是y的别名 66 myswap3(x, y); 67 printf("x:%d,y:%d\n", x, y); 68 69 system("pause"); 70 }