One-dimensional array
definición de la función
Hay cuatro formas de una definición de función:
una manera:
void testfunc(int a[], int size)
Segunda manera:
void testfunc(int* a, int size)
Tres maneras:
void testfunc(int a[10], int size)
Cuatro maneras:
template<class T>
void testfunc(T a, int size)
Camino cinco:
template<class T>
void testfunc(T& a, int size)
El primero de cuatro vías, en función, a es los tipos son * int, sizeof (a) es 4, es decir, el número de bytes de un puntero; la tercera forma de realización, el número de [] puede llenar fácilmente de hecho, ningún dicha matriz está dando fuera de la gama, tipo int *, sizeof (a) es 4, y en general no utilice la tercera realización, la longitud de la matriz debe ser pasado como un parámetro. Llene quinta forma de realización es int [5] (suponiendo pasado matriz de argumentos int de longitud 5), sizeof (a) es 5 * 4 = 20.
Todo lo anterior método definido, el parámetro de la función de modificar la matriz, la matriz cambiará el argumento.
llamada a la función
Cuando se llama a la matriz como un parámetro a una función de una sola manera:
testfunc(a, size)
matriz bidimensional
definición de la función
Hay cuatro formas de una definición de función:
una manera:
void testfunc(int a[][3], int size0, int size1)
Segunda manera:
void testfunc(int(*a)[3], int size0, int size1)
Tres maneras:
template<class T>
void testfunc(T a, int size0, int size1)
Cuatro maneras:
template<class T>
void testfunc(T& a, int size0, int size1)
Los tres primeros, en una función, a es los tipos son int (*) [3], sizeof (a) es 4, es decir, el número de bytes de un puntero; la cuarta forma de realización es del tipo int [2] [ 3] (suponiendo argumento pasado de longitud [2] [3] array int), sizeof (a) es 2x3x4 = 24.
Obsérvese que, cuando el número de columnas debe escribir definición de parámetro, no escribir el número de filas.
llamada a la función
Cuando se llama a la matriz como un parámetro a una función de una sola manera:
testfunc(a, size0, size1)