C语言递归函数调用中&是什么意思?

#include

#include

using namespace std;

void f(int w,int n,int &x,int &y)

{

x=(n-1)/w;

y=(n-1)%w;

if(x%2!=0)  
    y=w-1-y;  

}

int main()

{

int w,m,n,x1,y1,x2,y2;

cin>>w>>m>>n;

f(w,m,x1,y1);

f(w,n,x2,y2);

cout<<abs(x1-x2)+abs(y1-y2)<<endl;

return 0;

}

//void f(int w,int n,int &x,int &y) 里面为什么要用&,是什么意思?

5个回答

你这不是C语言。显然是C++。只有C++才会有using和namespace。
int & y 是指 y 是 int 的引用。引用是C++特有的语法。和C语言指针很接近。
引用会改变外部参数的值。如果不是引用,只会改变内部参数,不会有这样的效果。
建议你仔细翻阅 C++ Primer 或 C++ Primer Plus。看清作者,老外写的(国内有山寨书不要买)。
如果有的话就查阅就可以了。讲解非常细致。

这个叫引用,表示函数内修改了这个参数,那么会作用到调用它的程序里。在这里,x y作为所有递归函数共享的全局变量。

首先,这个是c++,其次,& 用于声明一个引用。作用和指针类似,但本质上又不同,想了解引用可以看看相关内容

这是一个c++程序!在传参的时候用的是引用的方法!代替了传值和传址!

   & 表示引用,相当于给参数起了一个别名,这个程序是C++程序
 引用:给已定义的变量起一个新的名字 引用必须初始化,一个变量可取多个别名,引用只能在初始化时引用一次,不能改变为引用其他变量。

如果函数中参数是类型加引用,那么形参就是实参的一个别名
你可以看一下这篇博客,里面有C++基础知识,以及引用的讲解
http://blog.csdn.net/valdc_morning/article/details/59483741

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问