在c ++中,使用指针的两个函数调用之间有什么区别?

Mec*_*chy 1 c++ matrix

在第一个函数调用中,我通过引用发送矩阵传递.不是第二种方式一样吗?我认为矩阵默认通过引用传递.

这是第一种情况:

phi= new double[15]; //phi is a dynamically allocated array

function(double *phi) //calls phi with what SHOULD be default pass by reference
Run Code Online (Sandbox Code Playgroud)

第二种情况:

function(double *&phi) //calls phi with pass by reference?
Run Code Online (Sandbox Code Playgroud)

两者之间应该没有区别,对吧?

我问的原因是因为我忽略了'&'符号并尝试在动态分配它的函数之外为phi赋值时,我的代码段出错了.

And*_*mas 8

在第一种情况下,函数声明接受按值指针.

在第二种情况下,函数声明通过引用接受指针.您可以更改函数中的指针.