引用和指针有何区别?何时只能使用指针而不能使用引用?
引用是一个别名,不能为 NULL 值,不能被重新分配;指针是一个存放地址的变量。当需要对变量重新赋以另外的地址或赋值为 NULL 时只能使用指针。
引用和指针的区别:
相同点:
都是地址的概念,指针指向一块内存,内容就是指向内存的地址,而引用就是一块内存的地址。
不同点:
1.引用仅是一个别名(不需要分配内存),而指针是一个实体(需要分配内存)。
2.引用定义时必须初始化,且以后不可以改变,而指针不需要。
3.引用不可以为空(NULL),而指针可以为空。
4.引用不可是const类型的,而指针可以是,且const类型的指针和引用更相似。
5.引用无需解引用(*),而指针需要。
6.sizeof(引用)的值是所指向变量的大小,而sizeof(指针)的值是指针的大小(32位)是4。
7.引用和指针的自增(++)和自减(--)的含义不同。