C++学习

new 操作符在堆区开辟数据

语法: new 数据类型

int *p = new int (10); // int 的类型值为10的空间,

delete p ; 释放内存

int * arr = net int[10]; // 创建一个数组, 这个数组有10个元素
delete[] arr; 释放这个数组, 必须在delete后面加[]

C++ 引用 给变量起别名
语法: 数据类型 &别名 = 原名
引用: 必须初始化, 引用在初始化后不可改变

引用做函数参数
int test(int &a, int &b) // 这种方式可以形参改变实参,
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 10;
int c = 20;
int &b = a; // 初始化 &b = 原名

b = c; // 其实是赋值操作, 而不是更改引用
test(a, c); // 通过引用参数产生的效果通按地址传递效果一样, 引用的语法更清楚简单
}

引用做函数的返回值
1, 不要返回局部变量的引用(注意局部变量的生命有效期)
2, 如果函数的返回值是引用, 这个函数的调用可以作为左边

int & test11(void)
{
static int a = 20;
return a;
}

test11() = 1000;

引用的本质
int a = 10;
int &ref = a; // 编译器自动转换 int * const ref = &a; 也就是指针常量是指针, 指向不可更改, 因此也说明引用不可更改
ref = 20; // 编译器自动转换为, *ref = 20;

常量引用,
使用场景, 用来修饰形参,方式误操作

const int & ref = 10; // 加上const 之后, 编译器将代码修改, int temp = 10; int &ref = temp
ref = 20; // 这样就不能修改里面的值了;

修饰形参:
int a = 200;
void showvalue(const int &val) // 这样防止别人在函数内部修改.
{
}

函数默认参数
int fucn(int a = 10, int b = 20, int c = 30)
{
return a+b+c;
}
int main()
{
func(10, 30, 30);

}

输出结果是70
// 如果我们自己传入数据, 就用自己的数据, 如果没有, 那么就用默认值
// 语法: 返回值类型, 函数名(形参 = 默认值,)

// 注意事项
// 1, 如果某个位置已经有了默认参数, 那么从这个位置往后, 从左到右都必须有默认值

//2, 如果函数声明有了默认参数, 函数实现就不能有了默认参数. 声明和实现只能有一个有默认参数

函数的占位参数

C++中函数的形参列表里可以有占位参数, 用来做占位, 调用函数时必须填补该位置
语法: 返回值类型, 函数名(数据类型{})

函数重载
函数重载概述
作用: 函数名可以相同, 提高复用性
函数重载满足条件:
同一个作用域下,
函数名称相同
函数参数类型不同, 或者个数不同,或者顺序不同.

函数重载的注意事项
1, 引用作为重载的条件
void fun()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值