传递一个数组给一个函数的正确做法:
1.传递数组的内存首地址.
2.传递数组的有效长度.指数组的元素数量.
编译器总是将数组类型的变量作为指针传递.
计算数组的长度: int length = sizeof( a ) / sizeof( a[0] );
C Sample code:
//接受一个数组参数的函数声明: void SampleArray1( int * a, int length ) { for( int i = 0; i < length; i++ ) { printf( "%d ", a[i] ); } printf( "\n" ); } void SampleArray2( int a[], int length ) { for( int i = 0; i < length; i++ ) { printf( "%d ", a[i] ); } printf( "\n" ); } void SampleArray3( int a[7], int length ) { for( int i = 0; i < length; i++ ) { printf( "%d ", a[i] ); } printf( "\n" ); } void main() { int a[] ={ 1,5,8,9,10 }; int length = sizeof( a ) / sizeof( a[0] ); //计算数组的长度. //编译器总是将数组类型的变量作为指针传递. SampleArray1( a, length ); SampleArray2( a, length ); SampleArray3( a, length ); SampleArray1( &a[1], length - 1 ); // 传递数组的第二个元素开始到最后一个元素到函数. }