C Programmeer nummers in cyclische volgorde met behulp van Call by Reference

In dit voorbeeld worden de drie nummers die door de gebruiker zijn ingevoerd, in cyclische volgorde verwisseld met behulp van call by reference.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C-programmeeronderwerpen:

  • C Pointers
  • C Geef adressen en pointers door

Programma om elementen te wisselen met behulp van Call by Reference

#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; ) 

Uitvoer

Voer respectievelijk a, b en c in: 1 2 3 Waarde vóór verwisseling: a = 1 b = 2 c = 3 Waarde na verwisseling: a = 3 b = 1 c = 2 

Hier worden de drie door de gebruiker ingevoerde cijfers opgeslagen in respectievelijk de variabelen a, b en c. De adressen van deze nummers worden doorgegeven aan de cyclicSwap()functie.

cyclicSwap(&a, &b, &c); 

In de functiedefinitie van cyclicSwap()hebben we deze adressen toegewezen aan pointers.

cyclicSwap(int *n1, int *n2, int *n3) (… ) 

Wanneer n1, n2 en n3 binnenkant cyclicSwap()worden gewijzigd, worden de waarden van a, b en c binnenkant main()ook gewijzigd.

Opmerking: de cyclicSwap()functie retourneert niets.

Interessante artikelen...