Llamar por valor y llamar por referencia en lenguaje C

Llamar por valor y llamar por referencia en lenguaje C

La función es un concepto muy importante en el lenguaje C. La función es una pieza de código que nos ayuda a ejecutar cierta acción. Basado en su definición, la función se puede dividir en cuatro tipos.

Esto se basa en la función que toma la salida de entrada y retorno.

  1. Ingrese ninguno y no salga ninguno.
  2. Ingrese algún valor y salga ninguno.
  3. Ingrese Ninguno y emitir algún valor.
  4. Introduzca algún valor y emite algún valor.

En el tema de hoy, discutiremos la llamada por valor y la llamada por referencia. Estos temas se basan totalmente en la clasificación de la función.

Programación Ejemplo 1:

En este ejemplo de programación, veremos el mecanismo de llamada por valor.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#incluir
int add (int, int); // Prototipo de declaración de funciones.
int main ()

int s, x, y;
printf ("Ingrese 2 números");
scanf (" %d %d", & x, & y);
s = agregar (x, y); // Llamada de función.
printf ("suma es %d", s);
regresar 0;

int add (int a, int b) // Definición de función y pasar el valor a través de la función.

int c;
c = a + b;
regreso c;

Producción:

Explicación:

Este ejemplo de programación es el ejemplo ideal de llamada por valor. Es el ejemplo de toma algo y devuelve algo.

Ingresar algún valor y salida ninguno del programa es el mismo como la entrada Ninguno y la salida de algún valor. La única diferencia es que, como es por naturaleza, tomar algo, por lo que el valor de dos números debe aprobarse en la función de llamadas. Se les llama argumentos reales.

O, el usuario toma el valor del teclado que utiliza la función Main (). El valor se pasa a la función add (). Estos valores se llaman argumentos formales.

Entonces, es un tipo de llamado por valor ejemplo. De lo contrario, el procedimiento de retorno es el mismo que no toma nada, devuelve algo procedimiento.

Programación Ejemplo 2:

Aquí veremos otro ejemplo de llamado por método de valor aplicando algo y no devuelve nada de procedimiento.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#incluir
void add (int, int); // Declaración de funciones a nivel mundial
int main ()

int x, y;
void add (int, int); // Declaración de funciones localmente
printf ("Ingrese 2 números");
scanf (" %d %d", & x, & y); // Argumentos reales
agregar (x, y);
regresar 0;

void add (int x, int y) // argumentos formales

int c;
c = x + y;
printf ("suma es %d", c);

Producción:

Explicación:

Si queremos agregar los dos valores de dos variables que se declaran dentro del main (). Agregue esto en un nombre de función diferente add (). Entonces, usamos Take algo devuelve nada del método. En este caso, en la función principal, el valor de x, y se pasa a la función Agregar cuando ADD () está llamando. Porque esto puede ser nombrado como llamar por valor.

Cada vez que pasamos el valor como argumento a una función de llamadas, entonces estos argumentos se denominan argumentos reales.

Por definición, dentro de la paréntesis de una función cuando declaramos la variable que recibirá el valor de la variable que se pasa por la función de llamada se denomina argumento formal.

El nombre de la variable de argumento real y el argumento formal puede ser el mismo porque el compilador sabe esa variable x, y se declaran dentro de la función principal () y x, y declarados en add () son diferentes variables.

En la función de llamadas, solo pasamos el valor de las variables que se declara dentro de Main (). Para esto escribimos add (x, y);

Programación Ejemplo 3:

Aquí, veremos un ejemplo de llamada por dirección aplicando algo y devuelve algo procedimiento.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
28
29
#incluir
int add (int *, int *); // Declaración de prototipo de función a nivel mundial
int main ()

int s, x, y;
printf ("Ingrese dos números:");
scanf (" %d %d", & x, & y);
s = add (& x, & y); // pasando la dirección de las variables.
printf ("La suma es: %d \ n", s);
regresar 0;

int add (int *a, int *b)

int c;
c = *a + *b;
retorno (c);

Producción:

Explicación:

Este es un ejemplo de llamada por referencia. A veces, en nuestro programa, ocurre una situación cuando no podemos pasar el valor de la variable a través de la función. Tenemos que pasar la dirección de estas variables para acceder a ellas. Se llama llamada por referencia.

Aquí, pasamos la dirección de variable a, variable b Dentro de la función Agregar para sumar los valores de variable a, variable b.

Programación Ejemplo 4:

Aquí, veremos otro ejemplo de llamada por dirección aplicando algo y devuelve algo procedimiento.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#incluir
int swap (int *, int *);
int main ()

int p = 56;
int q = 22;
printf ("Antes de intercambiar el valor del entero p: %d \ n", p);
printf ("Antes de intercambiar el valor del entero q: %d \ n", q);
intercambio (& p, & q); // llama a la función.
printf ("Después de intercambiar el valor del entero p: %d \ n", p);
printf ("Después de intercambiar el valor del entero q: %d \ n", q);
regresar 0;

int swap (int *x, int *y) // pasando la dirección de variables.

int t; / * Variable temporal para almacenar el valor de la primera variable */
t = *x;
*x = *y;
*y = t;

Producción:

Explicación:

Este es un ejemplo de llamada por referencia. A veces, en nuestro programa, ocurre una situación cuando no podemos pasar el valor de la variable a través de la función. Tenemos que pasar la dirección de estas variables para acceder a ellas. Se llama llamada por referencia.

Aquí, pasamos la dirección de variable a, variable b dentro de la función swap () para intercambiar los valores de variable a, variable b. Como resultado el valores de a, b se intercambian a través de la llamada por referencia.