初夏小谈:C++中“指针”和“引用“”的区别

1.引用只能绑定一个实体,而指针可以指向不同实体
2.使用指针时要判空,而引用不需要因此更安全
3.引用在定义时必须初始化,指针不做要求
4.在sizeof中:引用结果是引用类型的大小,但指针始终是地址空间所占字节个数

void Size()
{
	long long x = 10;
	long long& a = x;
	long long* p = &x;
	cout << sizeof(a) << endl;
	cout << sizeof(p) << endl;
}


5.引用自加即引用的实体增加1,指针自加即指针向偏移一个类型的大小

void Add()
{
	int num1 = 20;
	int& nu = num1;
	cout << num1 << endl;
	cout << &num1 << endl;
	cout << &nu << endl;
	nu++;
	cout << num1 << endl;
	cout << &num1 << endl;
	cout << &nu << endl;
	int num = 20;
	int* p = &num;
	cout << num << endl;
	cout << &num << endl;
	cout << &*p << endl;
	cout << &p << endl;
	p++;
	cout << num << endl;
	cout << &num << endl;
	cout << &*p << endl;
	cout << &p << endl;
}


6.有多级指针,但没有多级引用    // const int&& ra=10;(右值引用)C++11
7.访问实体时,指针需要显式解引用,而引用(编译器处理)
8.没有null引用,但有null指针

若需要详细代码请搜查看

https://github.com/AventadorSQ

                                                                                                                                                珍&源码

猜你喜欢

转载自blog.csdn.net/IT_xiaoQ/article/details/84028622