1、指针和引用的区别
对一个数据可以建立一个引用,它的作用是为一个变量起一个别名。
如 int a; int &b =a;
声明变量b为引用,并不需要另外开辟内存单元来存放b的值。b和a占内存中的同一个存储单元,他们具有同一地址。可以理解为:使变量b具有变量a的地址。
注意****:1)引用不是一种独立的数据类型,对引用只有声明,没有定义。
2)声明一个引用时,必须同时使之初始化,即声明它代表哪一变量;
3)在声明一个引用后,不能再使之作为另一变量的引用。
指针与引用的区别:
1)引用是给另外一个变量起别名,所以引用不会分配内存空间,指针变量占据自己的内存;
2) 引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL)
3) 有多级指针,但是没有多级引用,只能有一级引用。
4) 指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用时引用的变量值加1)
5) sizeof 引用得到的是所指向的变量(对象)的大小,而sizeof 指针得到的是指针本身的大小。
6) 引用访问一个变量是直接访问,而指针访问一个变量是间接访问。