C++复习--02

文章介绍了C++中的new运算符用于在堆区动态分配内存,包括单个变量和数组的情况,并强调了使用delete释放内存的重要性。同时,文章讲解了引用的概念,它是已存在变量的别名,初始化后不可改变,并展示了引用在函数参数中的应用。此外,还讨论了函数的默认参数,以及如何使用占位参数进行调用。
摘要由CSDN通过智能技术生成

new 操作符:

利用new运算符在堆区开辟数据,语法: new 数据类型

#include<iostream>
using namespace std;
int* func()//基本语法
{
	int* p = new int(10);
	return p;
}
void test01()//开辟数组
{
	int* p = func();
	cout << *p << endl;
	delete p;//删去堆区数据
	//cout << *p << endl;//内存已经被释放,再次访问就是非法操作
}
void test02()
{
	int *arr=new int[10];
	for (int i = 0; i < 10; i++)
	{
		arr[i] = i + 100;
	}
	for (int i = 0; i < 10; i++)
		cout << arr[i] << endl;
	//释放堆区数组
	delete[]arr;
}
int main()
{
	test01();
	test02();
}

引用:

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

#include<iostream>
using namespace std;

int main()
{
	int a = 10;
	int& b = a;//引用初始化
	int c = 20;
	b = c;//这是赋值,不是引用更改
	cout << "a= " << a << endl;
	cout << "b= " << b << endl;
	b = 100;//由b引用后,间接更改a的数值
	cout << "a= " << a << endl;
	cout << "b= " << b << endl;
}

引用必须初始化

引用在初始化后,不可以改变

利用引用来做函数参数

void mySwap03(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int a = 10;
int b = 20;

mySwap03(a, b);
cout << "a:" << a << " b:" << b << endl;

不要返回局部变量引用

函数调用作为左值

//返回局部变量引用
int& test01() {
int a = 10; //局部变量
return a;
}
//返回静态变量引用
int& test02() {
static int a = 20;
return a;
}
int main() {
//不能返回局部变量的引用
int& ref = test01();
cout << "ref = " << ref << endl;
cout << "ref = " << ref << endl;
//如果函数做左值,那么必须返回引用
int& ref2 = test02();
cout << "ref2 = " << ref2 << endl;
cout << "ref2 = " << ref2 << endl;
test02() = 1000;
cout << "ref2 = " << ref2 << endl;
cout << "ref2 = " << ref2 << endl;
system("pause");
return 0;
}

引用的本质是一个指针常量

函数

1.如果我们传入自己的数据,就用自己的数据,如果没有那就用默认数据

2.如果某位置有函数默认值,那么其余往后都有默认值

3.声明和实现只能有一个有默认参数

#include<iostream>
using namespace std;
int func(int a, int b , int c );//声明和实现只能有一个有默认参数

int main() {
	cout << func(10, 30);//结果为70,而不是60
	//如果我们传入自己的数据,就用自己的数据,如果没有,就用默认值
}
int func(int a, int b = 20, int c = 30)//如果某位置有函数默认值,那么其余往后的都要有默认值
{
	return a + b + c;
}
	

函数占位参数:

返回值类型 函数名(数据类型){}//直接在括号中写数据类型即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值