C++基础知识(三)

引用

#include<iostream>
using namespace std;

int main()
{
	//引用就是给变量起别名
	int a = 12;
	int &c = a;//为变量a起别名s【声明变量a的一个引用】
	int &d = a;

	cout << &a << ' ' << &c << ' ' << &d << endl;

	int& e = c;
	int f = 14;
	c = f;  //f的值赋给c
	cout << a << endl;
	c = 13;
	cout << a << endl;

	system("pause");
	return 0;
}

引用做参数

#include<iostream>
using namespace std;

void fun(int& a) //引用是一种直接的操作
{
	a = 13;
	//cout << a << endl;
}
void fun1(int a)      
{
	a = 14;
	cout << "fun1:" << a << endl;
}
void fun2(int *a) //指针是一种简介的操作
{
	*a = 15;
}
int main()
{
	int b = 12;
	//fun(b);
	fun2(&b);
	cout << b << endl;
	system("pause");
	return 0;
}

其他类型的引用

#include<iostream>
using namespace std;

int main()
{
	//常量的引用
	const int& a = 12;  //常量不能进行修改(写操作)
	cout << a << endl;

	//数组的引用
	int arr[12];
	int(&p)[12] = arr; //引用 类型
	p[2] = 12;
	cout << arr[2] << endl;

	int arr2[2][3];//类型一定匹配
	int(&p2)[2][3] = arr2;
	p2[1][2] = 123;
	cout << arr2[1][2] << endl;

	//指针的引用
	int b = 12;
	int *point = &b;
	int* (&p3) = point;
	*p3 = 34;
	cout << *point << ' ' << b << endl;
	system("pause");
	return 0;
}

引用与指针的区别

1、引用声明就要初始化,指针不用,int *p = NULL;

2、引用初始化之后就不能引用其他空间了,指针可以指向其他空间;

3、引用不占存储空间,指针占空间;

4、引用效率更高,指针是间接操作;

5、引用更安全,指针可以偏移;

6、指针更灵活,直接操作地址,指针更通用,C语言和C++都行。

&的三种作用(运算符重载现象)

1、声明变量的时候用&,表示引用;

2、变量前边加&,表示取地址;

3、数&数,表示位与运算。

猜你喜欢

转载自blog.csdn.net/weixin_37753215/article/details/81429098