Este programa pega três inteiros do usuário e os troca em ordem cíclica usando ponteiros.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação C ++:
- Ponteiros C ++
- Chamada C ++ por referência: usando ponteiros (com exemplos)
Três variáveis inseridas pelo usuário são armazenadas nas variáveis a, bec, respectivamente.
Em seguida, essas variáveis são passadas para a função cyclicSwap()
. Em vez de passar as variáveis reais, os endereços dessas variáveis são passados.
Quando essas variáveis são trocadas em ordem cíclica na cyclicSwap()
função, as variáveis a, b e c na main
função também são trocadas automaticamente.
Exemplo: programa para trocar elementos usando chamada por referência
#include using namespace std; void cyclicSwap(int *a, int *b, int *c); int main() ( int a, b, c; cout <> a>> b>> c; cout << "Value before swapping: " << endl; cout << "a, b and c respectively are: " << a << ", " << b << ", " << c << endl; cyclicSwap(&a, &b, &c); cout << "Value after swapping numbers in cycle: " << endl; cout << "a, b and c respectively are: " << a << ", " << b << ", " << c << endl; return 0; ) void cyclicSwap(int *a, int *b, int *c) ( int temp; temp = *b; *b = *a; *a = *c; *c = temp; )
Resultado
Insira os valores de a, bec respectivamente: 1 2 3 Valor antes de trocar: a = 1 b = 2 c = 3 Valor após trocar números no ciclo: a = 3 b = 1 c = 2
Observe que não retornamos nenhum valor da cyclicSwap()
função.