震惊:引用与内联函数居然携手迈入c++

前言:

当涉及到优化C++代码时,内联函数和引用是两个重要的概念。内联函数可以减少函数调用的开销, 而引用可以提高代码的可读性和效率。

在本文中,我们将深入探讨C++中内联函数和引用的知识点。

一、引用

引用的概念:

引用并不是定义一个新变量,而是给已经存在空间的变量去一个别名,编译器不会为引用变量开辟内存空间,它会和它引用的变量共用同一个内存空间。

就相当于玉兰花别名望春,木兰,三者其实是同样的东西。引用在函数参数传递、函数返回值、以及避免拷贝大对象时非常有用。

 //引用与本体共用同一块内存空间
    
int main()
{
	int a = 10;
	int& b = a;
	cout << &a << endl;
	cout << &b << endl;
	return 0;
}

(注意:引用与参数本体类型必须一致)

引用的特性;

引用有以下三种常见特性:

1、引用在定义时必须初始化

2、一个变量可以有多个引用

3、引用一旦引用了一个实体,再不能引用其他实体

//引用的特性

int main()
{
	int a = 10;
	int& b = a;
	int& c = a;
	//int& d;此条在编译时会出错
	return 0;
}

常引用;

在C++中,除了普通引用(即左值引用),还有常量引用(const 引用)。常量引用在声明时使用 const 关键字修饰,用于指示引用的对象是一个常量,即不能通过该引用修改对象的值。常量引用在函数参数传递和对象成员函数中经常被使用。

//常引用:

int main()
{
	const int a = 10;
	//int &pa=a;类型不符合,编译会报错
	const int& pa = a;
	const int& paa = 10;
	// int &paa=10;//类型不同
	return 0;
}

引用与指针的不同点: 

1、引用概念上定义一个变量的别名,指针存储一个变量地址。
2、引用在定义时必须被初始化,指针没有要求。
3、引用在初始化引用了一个实体参数后,便不能在引用其他实体,而指针可以随时指向其他参数。
4、我们不能NULL引用,但却可以使用NULL指针。

二、内联函数

内联函数的概念:

内联函数是一种C++中的编译器指令,用于将函数的定义直接插入到函数调用的地方,而不是通过函数调用的方式执行。这样可以减少函数调用的开销,提高程序的执行效率。在C++中,可以通过在函数定义前加上 inline 关键字来声明内联函数。

内联函数的特性:

1、inline是一种以空间换取时间的做法,如果编译器将函数当成内联函数处理,在编译阶段,会用函数体替换函数调用。这可能会使目标文件变大,但少了调用开销,可以提高程序运行效率。

2、在使用内联函数的时候,一般建议将函数规模小,不是递归,且频繁调用的函数设置为内联函数。

3、inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址了,链接就会找不到。

 通过合理使用常量引用和普通引用,可以提高代码的安全性和可读性,同时避免不必要的拷贝操作。在选择引用类型时,根据需求确定引用对象是否可修改,以及是否需要绑定到临时对象等因素来决定使用常量引用还是普通引用。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渡我白衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值