1、但是两者在作为形参的时候非常相似,区别是指针拷贝副本,引用不拷贝程序如下includeltstdioh void ptint * pta,int * ptb int *ptcptc=ptapta=ptbptb=ptc void refint ra,int rb int rcrc=rara=rbrb=rc void main int a=3int b=4int *pa=a;1引用是变量的别名指针是变量的地址,指针变量存放着那个变量的地址 2指针是可以做算术运算的,引用不行 3指针可以为NULL,也有常指针,二维指针,引用没这些 3其实就是变量名与地址之间的区别,两个除指针与引用的区别了用法上有些相似,其指针与引用的区别他没什么太大关系网上好多的,指针与引用的区别你查下;区别指针使用新的或删除malloc的或免费的释放创建一个对象,一个引用只能“导致一个已经存在的对象”如为int *指针=新的INT1或者int *指针=INT *的mallocsizeof运算INT释放有删除指针或免费指针,但没有提到这种用法哦;用引用作形参时在调用函数里就像操作实参一样,不需要考虑实参的地址问题 用指针做形参时,由于指针的值是变量的地址,所以要通过对地址解引用来操作其所指的变量在C++里优先选择引用类型作为形参,因为操作一个变量比操作一个指针要简单的多 但用指针作为形参的好处是它可以通过自增或自减改变它的指向。
2、关于指针和引用的区别,c++ primer是这么说的1引用总是指向某个对象定义引用时没有初始化是错误的2赋值行为有差异给引用赋值修改的是该引用所关联的对象的值,而不是使引用于另一个对象关联引用已经初始化,就始终指向同一个特定对象举个列子引用就像是指针与引用的区别你的身份证号,一出生就有指针与引用的区别了;C++编程中指针与引用的区别一指针和引用的区别1引用总是指向一个对象,没有所谓的 null reference 所有当有可能指向一个对象也有可能不指向对象则必须使用 指针由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值String rs = string1由于没有所谓的 null reference 所以在使用。
3、```而当对引用进行自增操作时,它实际上是对引用的目标变量进行自增这意味着,如果引用指向一个数组元素,那么自增后,它将指向下一个数组元素```cpp int a = 0, 1, 2, 3int r = a0r++ r的值增加1,现在指向a1```2 指针和引用的区别指针和引用在C++中;能用引用完成的都可以用指针完成能用指针完成的不一定能用引用完成引用正是屏蔽了指针 quot不安全 quot但却 quot功能强大 quot的那部分引用不能为空,所以在程序中的引用都是有值的,不必检查该引用是否为空而指针则可以为空你可以定义一个指向NULL的指针,这就是和引用的最大区别,所以在程序中使用。
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。
发表评论