#include <iostream>
using namespace std;
// 1、引用的概念
// 引用:空间的别名
// 类型 &别名 = 其他变量
int main1()
{
// a 是变量名, 代表一个4字节的空间
int a = 10;
// b 是 a 所代表的的空间的别名
// b 和 a 代表的是同一块空间
int &b = a;
b = 20;
cout << "a = " << a << endl;
// 定义引用的时候必须要赋予初值
int c = 30;
b = c; // 将 c 的值赋值给 b
cout << "a = " << a << endl;
return 0;
}
void mySwap(int *pa, int *pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
void mySwap(int &ma, int &mb)
{
int tmp = ma;
ma = mb;
mb = tmp;
}
// 2、引用的作用:在一定程度上可以替换指针
int main2()
{
int a = 10;
int b = 20;
mySwap(&a, &b);
cout <<"a = " << a <<", b = " << b <<endl;
mySwap(a, b);
cout <<"a = " << a <<", b = " << b <<endl;
return 0;
}
// 3、使用引用进行函数传参
struct Student
{
int id;
char name[100];
};
void printS(Student *ps)
{
printf ("id = %d, name = %s\n", ps->id, ps->name);
}
void printS(Student &rs)
{
printf ("id = %d, name = %s\n", rs.id, rs.name);
}
int main3()
{
Student s={10, "小明"};
printS(&s);
printS(s);
return 0;
}
struct Test
{
// char &rc1;
// char &rc2;
// int &ra;
double &rd;
};
// 4、引用本质: 是常量指针 int &ra ===> int * const ra
int main()
{
int a = 10;
int &ra = a; // int *const pra = &a
char c = 'A';
char &rc = c; // char *const prc = &c
printf ("sizeof(ra) = %d\n", sizeof(ra)); // ra = *pra sizeof(ra) ==== sizeof(*pra)
printf ("sizeof(rc) = %d\n", sizeof(rc));
printf ("sizeof(Test) = %d\n", sizeof(Test));
return 0;
}
引用
最新推荐文章于 2024-01-18 12:42:00 发布