c++基础知识补充(1)

引用

引用:给变量起别名
**

语法: 数据类型 &别名 = 原名

**

例子:

int a = 10;
int &b = a;

可以理解为指针常量的语法糖,相当于python和java里的相似的东西

注意事项

1.引用必须初始化
2.引用不可以更改

引用做函数参数

作用

传参的时候通过引用让形参修改实参

优点

可以避免使用指针操作,比较简单

例子:交换函数

//值传递
void swapValue(int a,int b)
{
	int temp = a;
	a = b;
	b = temp;
}
//地址传递
void swapAddress(int *a,int*b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}
// 调用的时候 swapAddress(&a,&b);
//引用传递
void swapReference(int &a,int &b)
{
	int temp = a;
	a = b;
	b = temp;
}
//调用的时候 swapReference(a,b);

后两种方式都可以改变外部实参的值,引用书写和使用都更简单一点

引用做函数的返回值

1.不要返回局部变量的引用
可以加stastic关键字操作
2.函数的调用可以作为左值
(函数调用返回引用的时候)

int & test02()
{
	static int a = 10;
	return a;
}
cout << a;
10
test02() =100;
cout << a;
100

引用的本质

引用在c++内部实现是一个指针常量,关于指针的操作都由编译器帮我们做了

常量引用

作用: 不能通过这个引用修改变量
使用场景:1.修饰形参防止误操作
引用必须引一块合法的空间
int ref = 10; 报错
const int ref = 10; 不会报错,编译器会生成一个中间变量存储,不能通过ref修改10

函数的默认参数

int func (int a,int b,int c = 10)
{
	return a+b+c;
}

如果我们传入了自己的数据就用自己的,如果没有,就用默认值
注意事项:

  1. 默认参数必须放在最后
  2. 如果函数声明有默认参数,函数实现就不能有默认参数了(只能有一个地方有)

函数的占位参数

void func(int a, int)
{
	cout<< a<<endl;
}

对这个func传参的时候必须传两个参数,占位参数也可以有默认值

函数重载

  1. 同一个作用域下
  2. 函数名称相同
  3. 函数参数的类型不同,或者个数不同或者顺序不同
  4. 单独返回值不同不能作为重载,因为无法区分
  5. 用const &和&区分的只有传入常量引用的时候才会走const &
  6. 函数重载最好要写默认参数,否则参数少的那个有可能会和有默认参数的无法区分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值