English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Linguagem C

Controle de Fluxo de Linguagem C

Função do C

Array do C

Ponteiro do C

String do C

Estrutura de Linguagem C

Arquivo de Linguagem C

Outros C

Manual de Referência do C

Programa C que usa chamada por referência para trocar elementos circularmente

大全 de Programação do C

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:

O programa troca elementos por referência

#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.

大全 de Programação do C