Rookie to C ++并不能理解指针和引用传递的函数。这是一个描述我遇到的问题的例子。
#include <iostream>
#include <math.h>
using namespace std;
void getsincos( double x, double *&sinx, double *&cosx );
int main()
{
double x = 30;
double *sinx;
double *cosx;
getsincos( x, sinx, cosx );
//cout << *sinx << endl;
cout << *cosx << endl;
return 0;
}
void getsincos( double x, double *&sinx, double *&cosx ){
double temps, tempc;
temps = sin( x );
tempc = cos( x );
sinx = &temps;
cosx = &tempc;
cout << *sinx << endl;
cout << *cosx << endl;
}
我注释掉了行cout << *sinx << endl;
,输出为:
-0.988032
0.154251
0.154251
前两个来自函数定义,最后一个来自main函数。下一步,如果我恢复行cout << *sinx << endl;
,结果是:
-0.988032
0.154251
-0.988032
6.95324e-310
肯定,最后一个是错的,它是一个随机数。对不起,我没有找到错误,任何人都可以给出一些解释。感谢。