Lenguaje C: parámetros reales y parámetros formales de funciones_notas de estudio

introducción

La importancia del lenguaje C y sus funciones en la programación.

Una frase de la novela "El espadachín que lucha en la nieve" resume la importancia de las funciones en lenguaje C: "Si el cielo no me hubiera dado a luz, Li Chungang, la espada sería como una larga noche". La programación es la misma que la de Li Chungang en la espada.

Las funciones del lenguaje C juegan un papel importante en la reutilización de código, el diseño modular, los parámetros de funciones, la pila de llamadas de funciones y la recursividad. El uso adecuado de las funciones puede mejorar la eficiencia, legibilidad y mantenibilidad de su programa.

componentes de función

Las funciones en lenguaje C constan de las siguientes partes:

  1. Nombre de la función: el nombre de la función es el identificador de la función y se utiliza para llamar a la función en el programa. Los nombres de las funciones deben ser descriptivos para que sea fácil entender qué hace la función.
  2. Lista de parámetros: la lista de parámetros incluye el tipo, orden y número de parámetros de entrada aceptados por la función. Cada parámetro en la lista de parámetros tiene un tipo y un identificador.
  3. Tipo de valor de retorno de la función: el tipo de valor de retorno de la función es el tipo de datos devuelto después de ejecutar la función. Si la función no devuelve ningún valor, el tipo de valor de retorno es nulo.
  4. Cuerpo de la función: El cuerpo de la función es el bloque de declaraciones que contiene el bloque de código específico para la ejecución de la función. Define cómo se ejecuta la función, incluido el procesamiento de los parámetros de entrada y el cálculo de los valores de retorno.

Para crear una función, debe contener los elementos básicos anteriores.

El siguiente es un ejemplo sencillo que muestra la composición de funciones del lenguaje C:

int add(int a, int b)  // 函数名:add,参数列表有两个 int 类型的参数 a 和 b
{
    
       
    int result = a + b;    // 计算 a 和 b 的和,存储到 result 变量中
    return result;         // 返回 result 的值
}

En este ejemplo, el nombre de la función es add. La lista de parámetros tiene dos parámetros de tipo int a y b. El tipo de valor de retorno de la función es int. El cuerpo de la función contiene declaraciones que calculan la suma de a y b y almacenan el resultado en el resultado. variable Finalmente, el valor del resultado se devuelve a través de la declaración de devolución.

En lenguaje C, los parámetros formales y los parámetros reales son partes importantes de las funciones.

Resumen de parámetros formales

Parámetro formal: el nombre completo es "parámetro formal". Es una variable que figura entre paréntesis después del nombre de la función cuando se define la función. Se utiliza para recibir los parámetros pasados ​​cuando se llama a la función.

La función de los parámetros formales es realizar la conexión entre la función que llama y la función llamada. Por lo general, los datos procesados ​​por la función, los factores que afectan la función de la función o el resultado del procesamiento de la función se utilizan como parámetros formales.

Resumen de los parámetros reales

Parámetro real: el nombre completo es "parámetro real". Los parámetros reales son los valores reales pasados ​​a la función al llamar a la función. Pueden ser constantes, variables o expresiones.

La función de los parámetros reales es proporcionar los datos necesarios para la ejecución de la función y se utilizan dentro de la función.

La relación entre parámetros reales y formales.

en,Los parámetros reales y los parámetros formales deben ser consistentes en número, tipo y orden; de lo contrario, se producirán errores de compilación.

En lenguaje C, los datos de parámetros formales y parámetros reales.Los tipos deben ser compatibles., es decir, se puede realizar la conversión de tipos entre ellos.

Específicamente, si el parámetro formal es un tipo de datos básico, como int, y el parámetro real es de tipo doble, el parámetro real convertirá el tipo doble al tipo int mediante conversión de tipo y luego lo pasará al parámetro formal.

Si el parámetro formal es un tipo de estructura y el parámetro real es un tipo de estructura diferente, entonces el parámetro real debe convertirse al mismo tipo de estructura que el parámetro formal mediante la asignación o copia de estructura.

Si el parámetro formal es un tipo de puntero y el parámetro real es un tipo de puntero diferente, entonces el parámetro real debe convertirse al mismo tipo de puntero que el parámetro formal mediante la conversión de puntero.

En resumen, cuando se llama a una función, el tipo de datos del parámetro real debe ser compatible con el parámetro formal, o puede convertirse a un tipo compatible mediante conversión de tipo.

La diferencia entre parámetros formales y reales.

diferencias del ciclo de vida

El alcance de los parámetros formales se limita al interior de la función, una vez finalizada la ejecución de la función, también finaliza el ciclo de vida de los parámetros formales.
El alcance de los parámetros reales generalmente se limita al período de llamada a la función. Cuando finaliza la función, finaliza el ciclo de vida de los parámetros reales.

Desde la perspectiva del ciclo de vida, el ciclo de vida de los parámetros formales es más corto que el de los parámetros reales.

Diferencias en la ubicación de almacenamiento.

Los parámetros reales y los parámetros formales tienen espacios de almacenamiento separados y no comparten memoria entre ellos.

#include <stdio.h>

void func(int a, int b) 
{
    
    
    printf("a = %p, b = %p\n", &a, &b);
}

int main()
 {
    
    
    int x = 10, y = 20;
    printf("x = %p, y = %p\n", &x, &y);
    func(x, y);
    return 0;
}

Insertar descripción de la imagen aquíComo se muestra en la figura anterior, puede ver que las direcciones de xey son diferentes de las direcciones de ay b.
Insertar descripción de la imagen aquí
Como se muestra en la imagen de arriba, xey obtienen los valores de ayb, pero las direcciones de xey son diferentes de las direcciones de ayb, por lo que podemos entenderlo comoEl parámetro formal es una copia temporal del parámetro real.

Supongo que te gusta

Origin blog.csdn.net/yjagks/article/details/132116681
Recomendado
Clasificación