这些参数是怎么传递的?

loepin 2004-04-06 01:27:27
有一个自定义的函数:
void MaxMinp(int *a,int n,int &max,int &min,int &maxp,int &minp)
{
……

}

在main()中调用该函数:
void main()
{
int a[3]={23,5,6};
int x,y,i,j;
MaxMinp(a,3,x,y,i,j);
……
}

请问在自定义函数MaxMinp()中,它的后面四个参数都带有取地址的符号&,请问这是什么意思?在该函数被调用的时候,实参是如何传递给形参的?
...全文
20 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
oliverliye 2004-04-06
  • 打赏
  • 举报
回复
你的参数后四个声明的是引用,而不是取地址的意思!引用是参数的别名,可以在函数内改变
参数的内容,一般在,参数不为NULL和要用函数做为左值时,参数声明为引用,要不,要在函数内改变参数的内容只有声明为指针。还有引用,和指针做为参数的时候,编译器编译时对它们是用一样的方法编译的!!
zfol510 2004-04-06
  • 打赏
  • 举报
回复
带&符号表示引用,决体内部实现我不太明白。但是用起来大概有点像指针。可以方便的修改外部对象。比如:
void mix1(int x){
x=1;
}
void mix2 (int &x){
x=2;
}
int main(){
int i=0;
mix1(i);
cout<<i; //输出i=0,因为这时函数内部生成一个关于i的拷贝。修改的是这个拷贝
mix2(i);
cout<<i; //输出i=2,因为函数生成的是关于i地址的拷贝,依然可以引用到外部对象i
}
pigja 2004-04-06
  • 打赏
  • 举报
回复
看一下引用的书就明白了。

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧