美文网首页
c++引用和指针的区别

c++引用和指针的区别

作者: darkness605 | 来源:发表于2020-08-19 01:05 被阅读0次

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

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

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

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

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

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

    造成野指针的原因:

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

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

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

    相关文章

      网友评论

          本文标题:c++引用和指针的区别

          本文链接:https://www.haomeiwen.com/subject/zzmjjktx.html