001 C/C++ 数组的传递

传递一个数组给一个函数的正确做法:

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 );  // 传递数组的第二个元素开始到最后一个元素到函数.
}

猜你喜欢

转载自www.cnblogs.com/it89/p/11068654.html
今日推荐