English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste exemplo, usa-se chamada por referência para trocar os três números introduzidos pelo usuário em ordem circular.
Para entender este exemplo, você deve conhecer o seguinteProgramação em CTema:
#include <stdio.h> void cyclicSwap(int *a, int *b, int *c); int main() { int a, b, c; printf("Introduza a, b e c: "); scanf("%d %d %d", &a, &b, &c); printf("Valores antes da troca:\n"); printf("a = %d b = %d c = %d\n", a, b, c); cyclicSwap(&a, &b, &c); printf("Valores após a troca:\n"); printf("a = %d b = %d c = %d", a, b, c); return 0; } //Troca circular void cyclicSwap(int *n1, int *n2, int *n3) { int temp; temp = *n2; *n2 = *n1; *n1 = *n3; *n3 = temp; }
Resultados de saída
Introduza a, b e c separadamente: 1 2 3 Valores antes da troca: a = 1 b = 2 c = 3 Valores após a troca: a = 3 b = 1 c = 2
Aqui, os três números introduzidos pelo usuário são armazenados nas variáveis a, b e c. Os endereços desses números serão passados para a função cyclicSwap().
cyclicSwap(&a, &b, &c);
No texto da definição da função cyclicSwap(), já atribuímos esses endereços aos ponteiros.
cyclicSwap(int *n1, int *n2, int *n3) { ... }
Quando o n da cyclicSwap()1、n2和n3Quando发生变化时,main()中的a、b和c的值也会发生变化。
Atenção:A função cyclicSwap() não retorna nada.