本文共 514 字,大约阅读时间需要 1 分钟。
指针与引用的相同和区别;如何相互转换?
相同:
- 都是地址的概念,指针指向某一内存、它的内容是所指内存的地址;引用则是某块内存的别名。
- 从内存分配上看:两者都占内存,程序为指针会分配内存,一般是4个字节;而引用的本质是指针常量,指向对象不能变,但指向对象的值可以变。两者都是地址概念,所以本身都会占用内存。
区别:
- 指针是实体,而引用是别名。
- 指针和引用的自增(++)运算符意义不同,指针是对内存地址自增,而引用是对值的自增。
- 引用使用时无需解引用(*),指针需要解引用;
- 引用只能在定义时被初始化一次,之后不可变;指针可变;
- 引用不能为空,指针可以为空
- “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小,在32位系统指针变量一般占用4字节内存。
- 引用没有const,指针有const;(指针有“指针常量”即int * const a,但是引用没有int& const a,不过引用有“常引用”即const int &a = 1。
指针和引用之间怎么转换:
- 指针转引用:把指针用*就可以转换成对象,可以用在引用参数当中。
- 引用转指针:把引用类型的对象用&取地址就获得指针了。
转载地址:http://fxrxi.baihongyu.com/