实验6-2 编写一个函数f,将传入此函数的直角坐标值 转换为极坐标值,并返回主调函数中。求极 坐标的公式是:c=Sqrt(x*x+y*y); q=arctan(y/x) 若要将两值返回主调函数,有多种方式可以 完成,请试之: (1)两值均以指针形参带回; (2)由指针形参带回一个值,函数值返回另 一个值。 (3)两值均以引用形参返回。 017年4月26日12时 第8章类和对象 HOME 2分 BACK NEX
HOME • 编写一个函数f,将传入此函数的直角坐标值 转换为极坐标值,并返回主调函数中。求极 坐标的公式是:c=sqrt(x*x+y*y); q=arctan(y/x) 若要将两值返回主调函数,有多种方式可以 完成,请试之: (1)两值均以指针形参带回; (2)由指针形参带回一个值,函数值返回另 一个值。 (3)两值均以引用形参返回。 2017年4月26日12时 12分 第8章 类和对象 1
void fun(float x,flaot y,float &c,float &c) c=sqrt(x*x+y*y); q=arctan(y/x); void fun (float x,flaot y,float *c,float *c) *c=sqrt(x*x+y*y); *q=arctan(y/x); float fun (float x,flaot y,float &c) float q; c=sqrt(x*x+y*y)为 q=arctan(y/x); return q; HOME BACK NEXT
HOME • void fun(float x,flaot y,float &c,float &c) { c=sqrt(x*x+y*y); q=arctan(y/x); } void fun (float x,flaot y,float *c,float *c) { *c=sqrt(x*x+y*y); *q=arctan(y/x); } float fun (float x,flaot y,float &c) { float q; c=sqrt(x*x+y*y); q=arctan(y/x); return q; }
例4.2调用函数时的数据传递 #include <iostream> using namespace std; int main() { int a,b,c; int max(int x,int y); cout<<"please enter two integer numbers:" cin>>a>>b; c=max(a,b); /调用max函数,给定实参为a,b。函数值赋给c cout<<"max="<<c<<endl; return 0; } int max(int x,int y) /定义有参函数max,x,y为形式参数 fint z; z=x>y?x:y; return(Z); 2017年4月26日12时 第4章函数与预处理 3 BACK NEXT
HOME2017年4月26日12时 12分 第4章 函数与预处理 3 #include <iostream> using namespace std; int main( ) { int a,b,c; int max(int x,int y) ; cout<<"please enter two integer numbers:"; cin>>a>>b; c=max(a,b); //调用max函数,给定实参为a,b。函数值赋给c cout<<"max="<<c<<endl; return 0; } int max(int x,int y) //定义有参函数max,x,y为形式参数 {int z; z=x>y?x:y; return(z); }
有关形参与实参的说明 (1)在定义函数时指定的形参,在未出现函数 调用时,它们并不占内存中的存储单元,因此 称它们是形式参数或虚拟参数 只有在发生函数调用时,函数max中的形参 才被分配内存单元,以便接收从实参传来的数 据 在调用结束后,形参所占的内存单元被释放。 2)定义函数时,必须在函数首部指定形参类 型。 017年4月26日12时 第4章 函数与预处理 HOME 分 BACK NEX
HOME2017年4月26日12时 12分 第4章 函数与预处理 4 (1) 在定义函数时指定的形参,在未出现函数 调用时,它们并不占内存中的存储单元,因此 称它们是形式参数或虚拟参数。 只有在发生函数调用时,函数max中的形参 才被分配内存单元,以便接收从实参传来的数 据。 在调用结束后,形参所占的内存单元被释放。 (2) 定义函数时,必须在函数首部指定形参类 型
(3)实参变量对形参变量的数据传递是“值传 递”,即单向传递,只由实参传给形参。形 参的值如果改变,不会改变主调函数中实参的 值。 a 2 3 a 2 b 3 X 2 3 10 15 2017年4月26日12时 第4章函数与预处理 H0座务 5 BACK NEXT
HOME2017年4月26日12时 12分 第4章 函数与预处理 5 (3) 实参变量对形参变量的数据传递是“值传 递” ,即单向传递,只由实参传给形参。 形 参的值如果改变,不会改变主调函数中实参的 值