Entrada de lenguaje C al maestro C ++: función de entrada de lenguaje C (4)

Capítulo 7 Funciones

Sección 4 Matrices como parámetros de función

1. Elementos de matriz como argumentos de función

#include <iostream>

int whichmax(int x, int y) {
    return (x > y ? x : y);
}

int main() {
    std::cout << "Hello, World!" << std::endl;
    //相当于定义了10个变量,a[0]-a[9]
    int a[10];
    a[0] = 100;
    a[1] = 12;
    int res = whichmax(a[0], a[1]);
    printf("whichmax res: %d\n", res);
    return 0;
}

2. Nombre de la matriz como argumento de función

  • El número de parámetros reales y formales debe ser igual, los tipos deben ser consistentes, corresponder en orden y pasar uno por uno

  • La transmisión de datos de las variables de parámetros reales a las variables de parámetros formales es la transmisión de valores, es decir, la transmisión de un solo término, solo los parámetros reales se transmiten a los parámetros formales, y los parámetros reales no pueden transmitirse por los parámetros formales.

  • El nombre de la matriz se puede usar como el parámetro real de la función. El nombre de la matriz representa la primera dirección de la matriz. Cuando el nombre de los datos se pasa como el parámetro real de la función, la primera dirección de la matriz se pasa en este momento.
    En este momento, los parámetros formales en la función también deben usarse Nombre de matriz (también puede ser puntero de matriz)

  • Cuando el nombre de la matriz se usa como un parámetro de función, no es una transferencia de valor o una transferencia de un solo elemento, sino que la dirección de inicio del grupo de parámetros real se pasa al grupo de parámetros de forma, de
    modo que las dos matrices ocuparán una sección de memoria juntas. Memoria asignada), es decir, si el valor de cada elemento en el grupo de parámetros de forma cambia,
    el valor del elemento en el grupo de parámetros real también cambiará en consecuencia. Esto es obviamente diferente del parámetro de función de la variable.

Explicación

  • 1. Si el parámetro real es un nombre de matriz, el parámetro formal también es el nombre de la matriz
  • 2. El grupo de parámetros de forma y el grupo de parámetros reales deben ser del mismo tipo, por ejemplo, ambos son de tipo int; de lo contrario, obtendrá errores inesperados.
  • 3. El tamaño del grupo de parámetros de forma no se puede especificar, incluso si está formulado, puede ser inconsistente con el tamaño del grupo de parámetros real, porque el compilador de c no verifica el tamaño del grupo de parámetros de forma,
    sino que solo la primera dirección del grupo de parámetros real se pasa al parámetro formal

3. Utilice nombres de matriz multidimensionales como argumentos de función

  • Los nombres de matriz multidimensionales se pueden usar como parámetros reales y formales. El grupo de parámetros de forma está definido, puede especificar el tamaño de cada dimensión, también puede omitir el tamaño de la primera dimensión,
    pero no puede omitir el tamaño de la segunda dimensión

  • Los parámetros reales y formales deben ser lo más consistentes posible, de modo que los subíndices a los que hacen referencia los parámetros reales y formales puedan ser consistentes, reduciendo la posibilidad de error

#include <iostream>

void changVal(int b[3][4]) {
    b[0][0] = 20;
    b[1][2] = 0;
    b[2][3] = 50;
    return;
}

int main() {
    std::cout << "Hello, World!" << std::endl;
    int a[3][4] = {85, 70, 98, 92, 78, 40, 90, 33, 80, 75, 64, 84};
    changVal(a);

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            printf("the value of a[%d][%d]: %d\n", i, j, a[i][j]);
        }
    }
    return 0;
}
Publicado 359 artículos originales · elogiado 248 · 660,000 vistas

Supongo que te gusta

Origin blog.csdn.net/Felaim/article/details/105666091
Recomendado
Clasificación