博文内容: 指针与引用
指针和引用的区别?
这个问题主要还是仁者见仁,智者见智。
主要就是对于俩者的出现时间来看,对于指针来说,早在C语言那会就已经出现,C++是后于C语言的,所以C++的出现会多少在使用上是优于C语言的。
1
指针是一个存储地址变量的。所以使用指针还需要进行一个解引用的操作。引用就是对于一个变量的别名,怎么改都是喊原来的变量进行的操作。可以认为就是引用不会开辟新的空间,指针需要开辟空间。
2
通常指针的类型也是根据变量进行变化的,指针的大小却是随着平台变化的,任何类型的指针通常在32位平台下是4字节,64位下是8字节。引用就是对于原来变量的类型的大小。
3
对于指针进行初始化时可以直接就是空指针,引用就是必须开始就初始化。
4
空间上,指针和引用在作为函数的传参时,会有略微差别在效率上,对于指针需要拷贝,因为形参的改变不会影响实参。引用就是对于原来变量的“别名”。所以本质都是同一个。不会产生额外的拷贝。
5
效率上,对于引用的++运算,是对于原来变量的自身++。会改变原有的变量的值。指针++就是对于地址一个偏移,具体偏移步长与指针本身的类型有关。
6
指针有多级的指针,引用就不会有,如果有那也是右值引用。与指针的多级不同。
总结
以上就是对于指针和引用的一些见解。