c++ 中引用和指针的区别

 简单的说两者的区别在于指针是一个变量,其值是某个变量的地址,所以指针可以间接改变它所存地址处的变量的值。而引用相当 于某个变量的别名,它的实现可以理解为一个常量指针,这个指针初始化的时候就固定的指向一个对象,int &a = b就类似于int * const c = &b, 其中a=*c,当然实际不一定是这样的,只是方便理解。

毕竟引用是一种类型,当然附加了一些类型定义。简单总结如下:

(1)都和地址有关,指针更加自由,引用更加安全。

(2)指针是一个变量,引用只是变量的一个别名(可以和常量指针联想一下)。

(3)指针只能被初始化一次,而指针是变量可以随意改变。

(4)sizeof 操作的结果不一样,引用是所指向变量的大小,指针为4字节。

 

 

你可能感兴趣的:(c/c++)