内联函数、const、引用 的含义和用法

=============

内联函数

=============
说明
1、使用inline修饰函数或者申明实现时,可以使其变成内联函数
2、建议声名和实现都增加inline修饰
3、在声名内联函数时,关键字inline必须和函数定义结合在一起,否则编译器会直接忽略内联请求

特点
1、编译器会将函数调用直接展开为函数替代码
2、可以减少函数调用的开销
3、会增加代码的体积

限制
1、不能存在任何形式的循环语句或者过多的条件判断语句
2、不能对函数进行取址操作
3、函数内联声名必须在调用语句之前

什么时候使用内联函数
1、函数代码体积不大
2、频繁的调用函数

补充:内联函数相对于普通函数,其优势只是省去了函数调用时压栈、跳转、和返回等开销。因此,当函数体的执行开销远大于压栈、跳转和返回等操作所用的开销时,此时用内联函数就毫无意义了

=============

const

=============
说明
1、const时常量的意思,被其修饰的变量不可修改
2、如果修饰的是类、结构体(的指针),其成员也不可修改
3、const修饰的是其右边的内容(★)

=============

引用

=============
说明
1、在c语言中,使用指针可以间接获取、修改成员变量的值;在C++中,使用引用可以起到跟指针类似的功能
2、格式:

int age =10;
int &rage=age;//rage就是一个引用

3、引用的本质就是指针,但它比指针更安全,函数返回值可以被赋值。一个引用占用一个指针的大小
4、引用在定义时必须要初始化
5、有多级指针,但没有多级引用

常引用

1、引用可以被const修饰,这样就无法通过引用修改数据了,称为常引用
2、const必须写在&符号的左边,才能算是常引用
3、 const引用的特点
①可以指向临时数据(常量、表达式、函数返回值等)
②可以指向不同类型的数据
③作为函数参数时(此规则也适用于const指针)
✓可以接受const和非const实参(非const引用,只能接受非const实参)
✓可以跟非const引用构成重载(重载会在后面讲到)
4、当常引用指向了不同类型的数据时,会产生临时变量,即引用指向的并不是初始化时的那个变量

引用作为函数参数

void swap(int& a,int& b){
	int temp=a;
	a=b;
	b=temp;
}
int main(){
	int num1=10;
	int num2=20;
	swap(num1,num2);
	printf("num1=%d,num2=%d\n",num1,num2);
	return 0;
}

引用作为函数返回值

#include<cstdio>
#include<iostream>
using namespace std;

int& test(int& a){
	a++; 
	return a;
}

int main(){
	int a=1; 
	cout<<test(a)<<end1;
	 return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_47329614/article/details/106893209