Rud*_*udi 17
通过引用传递参数时,函数内的参数是从外部传递的变量的别名.当您通过指针传递变量时,您将获取变量的地址并将地址传递给函数.主要区别在于您可以将没有地址(如数字)的值传递到带有const引用的函数中,而不能将无地址值传递给带有const指针的函数.
通常,C++编译器将引用实现为隐藏指针.
您可以通过以下方式将函数更改为指针变量:
void flip(int *i) // change the parameter to a pointer type
{
cout << " flip start "<<"i="<< *i<<"\n"; // replace i by *i
*i = 2*(*i); // I'm not sure it the parenthesis is really needed here,
// but IMHO this is better readable
cout << " flip exit "<<"i="<< *i<<"\n";
}
int main()
{
int j =1;
cout <<"main j="<<j<<endl;
flip(&j); // take the address of j and pass this value
// adjust all other references ...
}
Run Code Online (Sandbox Code Playgroud)