c++引用和指针的区别

1.指针是变量,变量中储存的是指针指向对象的地址;引用是取别名(&a=b),本质上来说是就是a和b是同样的,所属地址也是一样的。

2.既然是变量,sizeof(指针)的值就为变量所属数据类型的大小,而sizeof(引用)得到的是引用指向变量的大小。

3.指针可以为空,引用不行,且必须初始化。

4.指针可以多个叠用,***a;而引用不行;

5.指针在初始化后可以改变指向(除了const),而引用初始化后不行(类似常量指针);


野指针:指向被释放的或者访问受限内存的指针。

造成野指针的原因:

1.指针变量没有被初始化(如果值不定,可以初始化为NULL)

2.指针被free或者delete后,没有置为NULL, free和delete只是把指针所指向的内存给释放掉,并没有把指针本身干掉,此时指针指向的是“垃圾”内存。释放后的指针应该被置为NULL.

3.指针操作超越了变量的作用范围,比如返回指向栈内存的指针就是野指针。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。