关于C++的函数声明问题。

来源:百度知道 编辑:UC知道 时间:2024/06/14 12:00:07
有如下题目,判断函数声明的合法性:

判断下列函数原型声明的合法性。
1)int& fsum(int,int); [ ]
2)void fsub(x,y); [ ]
3)void fswap(float *,float *); [ ]
4)float fmin(&a,&b,&c); [ ]
5)bool fdelete(int &,const int &); [ ]

不太明白第1、4、5个声明,因为我很不能理解“&”的含义和作用。
有谁能分别帮我解释一下么?谢谢……
上面几个式子是判断题,各位还是顺便给个答案,我自己做的心里没底……谢谢了。

2和4是错的 ,参数没有类型

&是引用,表示变量的别称,比如int &a=b,a不是b的指针,也不是b的复制,a就是b,这个时候相当于#define a b。

第一题&修饰函数名fsub,fsub运算时可以放在等号左边比如
fsub(1,2)=5;这个用法一般用在运算符重载。

第五题参数用&修饰后可省去参数传递时候复制变量花费的时间,而且第一个参数可以在函数里修改,第二个不能修改

在这里都是“引用”的含义。
第一个函数的返回值是“引用”类型。
第四个和第五个是说函数的形参是实参的“引用”,即“引用”调用。

哥们儿,你明说吧,要给出个什么答案?

“&” 其实就是取地址 在指针的相关知识中有详细地讲解 就是把变量的地址传递给函数