介绍
引用是C++中特有的语法,在C语言中不存在。
本质上引用(reference)就是指针,在类型名后面加上一个&号就是引用类型。
1.指针与引用的定义进行比较
指针定义: 引用定义:
int a = 123; int a =123;
int* p = &a; int& r = a;
称作:p指向了变量a 称作:r是变量a的引用或r引用了目标对象a
2.引用可以看作是目标对象的一个别名,对引用的操作其实都是对目标对象的操作,引用不开辟空间。
3.引用必须在定义时初始化,也就是一创建就要与目标对象绑定,一经绑定不可修改。
int a = 124;
int &r; //语法错,必须初始化
4.可对引用再次引用,多次引用相当于变量有多个别名。
int a = 10;
int &aa = a;
int &aaa = aa;
引用作为函数参数
#include <stdio.h>
int add(int& a, int& b)
{
return a + b;
}
int main()
{
int a = 1, b = 2;
printf("%d\n", add(a, b));
return 1;
}
引用作为函数的返回值
#include <stdio.h>
#include <string.h>
struct Student
{
char name[32];
int age;
};
Student stu;
Student& fun()
{
strcpy(stu.name, "aaa");
stu.age = 30;
return stu;
}
int main()
{
Student& stu = fun();
printf("name = %s, age = %d\n", stu.name, stu.age);
return 1;
}
欢迎加群交流:C/C++开发交流