我正在研究一个现有项目(由其他人编写),我无法理解这两个简单的功能.
我感兴趣的第一个函数包含:
int iCounts[NUM_GRADES];
PROFILEMAN->GetMachineProfile()->GetGrades( pSong, GAMESTATE->GetCurrentStyle()->m_StepsType, iCounts );
Run Code Online (Sandbox Code Playgroud)
所以我可以看到iCounts被传递到GetGrades,这很好.但后来在iCounts上使用如下:
AppendOctal( iCounts[g], 3, foo );
Run Code Online (Sandbox Code Playgroud)
所以有些东西改变了iCounts.但是当我去看GetGrades时,它看起来像这样:
void Profile::GetGrades( const Song* pSong, StepsType st, int iCounts[NUM_GRADES] ) const{
SongID songID;
songID.FromSong( pSong );
memset( iCounts, 0, sizeof(int)*NUM_GRADES );
...then some more stuff is done to iCounts
}
Run Code Online (Sandbox Code Playgroud)
我无法理解的是,在GetGrades中没有涉及指针时,原始函数的iCounts如何被修改?