以下代码有什么区别:-
int a;
int *p;
p=&a;
function(p);
和
int a;
function(&a);
我在读一本书,有时他们使用第一个代码,有时使用另一个。虽然这不是一本好书(由本地作者撰写)。
两种代码的工作方式相同还是有任何区别?
另外,在效率方面有什么区别吗,有那么重要吗?
谢谢
最佳答案
对于引用,对象必须已经存在才能引用它。至于指针,声明指针时对象不需要已经存在
例子:
int &i = 10; //Invalid
const int &i = 10; //Valid
还有
不能声明引用数组:
int &tab[] = {2,3}; //Invalid
int * tab[] = {2,3}; //Valid
在实践中,引用大多被用作函数的参数和返回值;
关于c++ - 通过指针传递的区别-C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11524496/