无法在c ++

时间:2015-05-15 08:56:40

标签: c++ pointers reference

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
肯定,最后一个是错的,它是一个随机数。对不起,我没有找到错误,任何人都可以给出一些解释。感谢。

0 个答案:

没有答案