天天看點

[C/C++]數組的引用、多元數組

數組名當參數傳遞的時候會退化為指針,數組長度沒有實際意義,反而會誤導

[C/C++]數組的引用、多元數組

void  foo( int *  a) ;

[C/C++]數組的引用、多元數組

void  foo( int  a[]);

[C/C++]數組的引用、多元數組

void  foo( int  a[ 10 ]);

以上三個寫法等價。

不想讓數組退化為指針,可以通過傳遞 數組的引用來實作

[C/C++]數組的引用、多元數組

void  foo( int  ( & a)[ 10 ]);

這個函數隻能接受長度為10的int型數組。

===============================================================

[C/C++]數組的引用、多元數組

int   * matrix[ 10 ];       // array of 10 pointers

[C/C++]數組的引用、多元數組

int  ( * matrix)[ 10 ];     // pointer to an array of 10 ints