几种参数传递问题(读c++ primer plus)
1:用数组做参数传递
#include <iostream> #include <cmath> struct polar { double distance;: double angle; }; struct rect { double x; double y; } void rect_to_polar(const *pxy,polar *pda); void show_polar(const polar *pda); int main() { rect rplace; polar pplace; while (cin >> rplace.x >> rplace.y) { rect_to_polar (&rplace,&pplace); show_polar(&pplace) } return 0; } void show_polar(const polar* pda) { using namespace std; cout <<pda->distance; cout << pda->angle; } void rect_to_polar (const rect *pxy,polar *pda) { using namespace std; pda->distance = sqrt(pxy ->x+pda->y*pda->y); } 调用函数时候,将结构的指针的地址而不是结构本身传递给他,这一点很重要。
3:函数指针:
#include <iostream>
double betsy(int);
double pam(int);
void estimate (int lines,double (*pf)(int));
int main()
{
using namespace std;
int code;
cin >> code;
estimate (code,betsy);
estimate(code,pam);
return 0;
}
double betsy(int lns)
{
return 0.05*lns;
}
double pam (int lns)
{
return 0.03*lns + 0.0004*lns*lns;
}
void estimate (int lines,double(*pf)(int))
{
using namespace std;
cout << (*pf)(lines) ;
}
第二次调用estimate()函数时候传递了函数pam()的地址。也就是*pf指针。pf=pam
转载请注明出处,有技术问题,欢迎互相交流,或者留言.