我对C ++中的参数类型感到困惑我在下面的代码中有两个函数:
void degistir2( int *x, int *y )
{
int gecici;
gecici = *x; *x = *y;
*y = gecici;
}
void degistir3( int &x, int &y )
{
int gecici;
gecici = x; x = y;
y = gecici;
}
这些功能有什么区别?我知道指针和参考,但我不知道它在上述函数中是如何工作的。
答案 0 :(得分:1)
在第一个示例中,为您的函数提供了x和y地址的副本。
在第二个示例中,您的函数被赋予与函数调用源自的代码相同的x和y实例。
默认情况下,函数会接收传递给函数的变量的副本。您的两个示例都允许您通过不同的方法访问原始x和y。
有关更多详细信息和示例,请参见this guide的7.2-7.4。