我正在尝试编写一个函数来通过递归打印数组。
我写了三个函数,但它们在原理上似乎是相同的。
void printArray0( int theArray[], int theSize, int theIndex = 0 )
{
cout << theArray[theIndex] << ' ';
if ( ++theIndex != theSize ) printArray0( theArray, theSize, theIndex );
else cout << endl;
}
void printArray1( int theArray[], int theElementLeft )
{
cout << *theArray << ' ';
if ( theElementLeft != 1 ) printArray1( theArray+1, theElementLeft-1 );
else cout << endl;
}
void printArray2( int theArray[], int theSize )
{
static int myIndex = 0;
cout << theArray[myIndex] << ' ';
if ( ++myIndex != theSize ) printArray2( theArray, theSize );
else cout << endl;
}
那么它们之间有显着差异吗?
如果有,哪个功能最快,哪个最安全?
我希望我能从别人的经验中学习:)