En este ejemplo, los tres números ingresados por el usuario se intercambian en orden cíclico usando la llamada por referencia.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación en C:
- Punteros C
- C Pass Direcciones y punteros
Programa para intercambiar elementos mediante llamada por referencia
#include void cyclicSwap(int *a, int *b, int *c); int main() ( int a, b, c; printf("Enter a, b and c respectively: "); scanf("%d %d %d", &a, &b, &c); printf("Value before swapping:"); printf("a = %d b = %d c = %d", a, b, c); cyclicSwap(&a, &b, &c); printf("Value after swapping:"); printf("a = %d b = %d c = %d", a, b, c); return 0; ) void cyclicSwap(int *n1, int *n2, int *n3) ( int temp; // swapping in cyclic order temp = *n2; *n2 = *n1; *n1 = *n3; *n3 = temp; )
Salida
Ingrese a, byc respectivamente: 1 2 3 Valor antes del intercambio: a = 1 b = 2 c = 3 Valor después del intercambio: a = 3 b = 1 c = 2
Aquí, los tres números ingresados por el usuario se almacenan en las variables a, byc respectivamente. Las direcciones de estos números se pasan a la cyclicSwap()
función.
cyclicSwap(&a, &b, &c);
En la definición de función de cyclicSwap()
, hemos asignado estas direcciones a punteros.
cyclicSwap(int *n1, int *n2, int *n3) (… )
Cuando cyclicSwap()
se cambian n1, n2 y n3 en el interior, también se cambian los valores de a, b y c en el interior main()
.
Nota: La cyclicSwap()
función no devuelve nada.