一、 指针的定义
指针就是地址,指针变量是用来存放内存地址的变量。不同类型的指针变量所占的存储单元是相同的,而存储数据的变量因数据类型的不同而占用的存储空间的大小也不同。
二、 引用的定义
引用不是新定义一个变量,而是给已存变量取一个别名,编译器不会因为引用而新开辟一个内存空间,引用和和它引用的变量共享一个内存空间。
类型& 引用变量名 = 引用实体; 且引用类型必须和引用实体是同种类型的。
引用的主要用途是:修饰函数的形参和返回值。
在C++语言中,函数的参数和返回值的传递方式有三种:值传递,指针传递和引用传递。引用具有指针的效率,又具有变量使用的方便性和直观性。
实际上引用可以做的事,指针都可以做,为什么还要引用呢?
引用体现了最小特权原则,即给予程序元素完成其功能的最小权限. 指针能够毫无约束的操作内存中的任何东西,尽管功能强大,但是非常危险。
三、 引用和指针的区别
引用必须进行初始化,不存在指向空的引用;指针在定义时可不进行初始化,指针也可指向空。
引用初始化时引用一个实体后,就不能再作为其他实体的引用;但是指针可以更换指向同类型不同的实体。