比如:
changenum(int* p)
changenum(int*& p)
这两者有什么区别呢?
如果在子函数changenum()中我们改变指针p指向对象的值时,第一种和第二种都可以。但是如果我们要改变指针p指向对象的话,只有第二种可以实现。
因为如果不使用&,那么在函数中会自动调用指针的构造函数,构造一个临时指针,这个指针和传进来的指针指向同一个位置。我们可以通过这个临时指针改变该位置的数值,但是如果把临时指针指向另一个位置时,并不会改变传进来的指针指向的位置。
本文深入探讨了C++中指针与引用的区别,特别是int* p与int*& p的不同。前者仅能改变所指向对象的值,而后者还能修改指针本身所指向的对象。通过实例说明了不使用&时,函数内部创建的是临时指针,这不会影响原始指针的指向。
比如:
changenum(int* p)
changenum(int*& p)
这两者有什么区别呢?
如果在子函数changenum()中我们改变指针p指向对象的值时,第一种和第二种都可以。但是如果我们要改变指针p指向对象的话,只有第二种可以实现。
因为如果不使用&,那么在函数中会自动调用指针的构造函数,构造一个临时指针,这个指针和传进来的指针指向同一个位置。我们可以通过这个临时指针改变该位置的数值,但是如果把临时指针指向另一个位置时,并不会改变传进来的指针指向的位置。
1765
495

被折叠的 条评论
为什么被折叠?