指针和引用的使用
来源:互联网 发布:银河麒麟知乎 编辑:程序博客网 时间:2024/05/01 21:15
一、指针和引用的在基础上的区分
1、指针可以为空,引用不能为空。
2、指针可以赋值,引用不能重新赋值,只能初始化。
3、指针可以指向堆中空间,引用不可以指向堆中空间。
二、引用常见的错误
1、引用的作用范围问题
#include<iostream>
using namespace std;
class A
{
public:
A (int i){this->i=i;cout<<"costr"<<endl;}
int getI();
A(A&a)
{
this->i=a.i;
cout<<"copy"<<endl;
}
~A(){cout<<"destory"<<endl;}
private:
int i;
};
A::getI()
{
return this->i;
}
A &fuct()
{
A a(23);
return a;
}
void main()
{
A &a = fuct();
cout<<a.getI()<<endl;
}
运行结果:
因为在运行的时候,返回一个对象的引用,但是它的作用范围已经消失,所以a成了一个空的引用,使用引用来调用就成了未知的数据。
2、返回对象的结果
A fuct()
{
A a(23);
return a;
}
void main()
{
A &a = fuct();
cout<<a.getI()<<endl;
}
运行结果为:
结果是引用完成输出结果后调用析构函数。
结果和使用 A a = fuct();一样。
3、使用指针方式来是使用
A fuct()
{
A a(23);
return a;
}
void main()
{
A *a = &fuct();
cout<<a->getI()<<endl;
}
运行的结果是:
先进行析构处理,但是指针还能显示出23,因为在C++的机制中只是将那段内存标志位清空,
其它的也能使用该快内存,能显示23是因为那段内存还没有被其它的程序进行修改。
- 指针和引用的使用
- 引用和指针的使用
- 引用和指针的使用区别
- c++指针和引用的使用浅谈
- c++指针和引用的使用浅谈
- c++指针和引用的使用浅谈
- 函数指针和函数引用的使用
- 指针和指针的引用
- 指针和指针的引用
- 指针,和指针的引用
- 指针和指针的引用
- 指针的指针和指针的引用
- 指针的指针和指针的引用
- 指针的指针和指针的引用
- 对引用和指针使用以及函数返回引用和指针类型的理解
- 指针和引用的使用注意点-----常量指针和常量引用
- 对引用和指针使用以及函数返回引用和指针类型的理解
- 对引用和指针使用以及函数返回引用和指针类型的理解
- 文件系统的制作
- ajax get 到servlet 解决utf-8中文乱码
- CommandBehavior.CloseConnection有何作用
- 朴素的dijkstra模板
- 建立良好人际关系的十二个要点
- 指针和引用的使用
- 详解DNS的常用记录(下):DNS系列之三
- JAVA socket编程实例
- 从eclipse导入工程到myeclipse,不能部署到tomcat根目录下的解决方案
- 用迭代创建联级目录
- Qt网络获取本机网络信息
- 是页面所有元素disabled 属性失效和生效的javascript
- 文本编码只UTF-8
- stl 容器适配器、迭代器适配器和函数适配器讲解