指针和引用的区别与相同点

指针和引用的区别与相同点
教你指针和引用的区别与相同点
相同点:
引用和指针都是地址的概念,引用是一个内存对象的别名,指针指向一个内存对象,保存了这个对象的内存地址 。
【指针和引用的区别与相同点】区别:
1、引用不能为空,即不存在对空对象的引用,指针可以为空,指向空对象 。
2、引用必须初始化,指定对哪个对象的引用,指针不需要 。
3、引用初始化后不能改变,指针可以改变所指对象的值 。
4、引用访问对象是直接访问,指针访问对象是间接访问 。
5、引用的大小是所引用对象的大小,指针的大小,是指针本身大小,通常是4字节 。
6、引用没有const,指针有const
7、引用和指针的++自增运算符意义不同 。
8、引用不需要分配内存空间,指针需要 。
c语言中引用及指针和引用的联系与区别是什么C语言中引用和指针的用法很相似,在做函数参数时都是传递变量的地址,而不是传递一个变量的副本,都可以返回对参数变量的修改 。主要区别在于参数的传递形式上 。
指针的形式类似于 : int *pInt;
引用的形式类似于 : int &pInt;
c++的引用与指针有什么区别1) 引用必须被初始化,指针不必 。2) 引用初始化以后不能被改变,指针可以改变所指的对象 。3) 不存在指向空值的引用,但是存在指向空值的指针 。1) 引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联;而指针则可以是NULL. (3) 引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用;而指针在任何时候都可以改变为指向另一个对象.给引用赋值并不是改变它和原始对象的绑定关系. (4) 引用的创建和销毁并不会调用类的拷贝构造函数 (5) 语言层面,引用的用法和对象一样;在二进制层面,引用一般都是通过指针来实现的,只不过编译器帮我们完成了转换. 不存在空引用,并且引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用,显得很安全 。const 指针仍然存在空指针,并且有可能产生野指针. 总的来说:引用既具有指针的效率,又具有变量使用的方便性和直观性 2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同 。申明一个引用的时候,切记要对其进行初始化 。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名 。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元 。不能建立数组的引用 。
指针和引用的区别1.
指针是一个实体,而引用仅是个别名;
2.
引用使用时无需解引用(*),指针需要解引用;
3.
引用只能在定义时被初始化一次,之后不可变;指针可变;
引用“从一而终”
^_^
4.
引用没有
const,指针有
const,const
的指针不可变;
5.
引用不能为空,指针可以为空;
6.
“sizeof
引用”得到的是所指向的变量(对象)的大小,而“sizeof
指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
typeid(T)
==
typeid(T&)

推荐阅读