我对使用指针感到非常困惑。在下面的代码中,如果我将currentYear设置为2010,则我希望将2010的值分配给initYear。但是,当我调试它时,在代码的第一行中,inityear =2009。在代码的最后一行中,initYear也等于2009,而currentYear = 2010。

任何人都可以解释为什么会发生这种情况,以及当当年是2010年时如何将initYear设置为2010年?谢谢。

这是代码:

 int initYear = pEnvContext->currentYear;
      for ( int i=0; i < m_numberOfRuns; i++ )
         {
         UpdateMonteCarloInput(pEnvContext,i);
         pEnvContext->run=i;
         pEnvContext->currentYear=initYear;

最佳答案

使用参考:

int& initYear = pEnvContext->currentYear;


现在,initYear基本上是访问currentYear值的另一种方法。请参阅here以了解有关参考的更多信息。

08-16 02:07