Changer la valeur de la variable avec un pointeur?

Je suis nouveau avec les pointeurs et je suis en train de créer une fonction qui modifie la valeur de la variable un variable b, et la valeur de la variable b variable un.

Je pense que j'ai tout à droite, à l'exception de la fonction. Dans la fonction, je suis en train de faire la valeur de pointeur un (*un) et l'affecter à la valeur du pointeur de la b a, et vice verca. Cependant, ma sortie est "une est désormais, y et b est désormais y".

Est-ce parce que quand j'assigne *un à b, b obtiendrez *un's la valeur qui vient de changer pour un y?

#include <stdio.h>

void change(char* a, char* b)
{
    *a = b;
    *b = a;
}

int main(void)
{

    char a = 'x';
    char b = 'y';


    printf("a is now %c and b is now %c\n", a, b); 

    change(&a, &b);

    printf("a is now %c and b is now %c\n", a, b); 

    return 0;
}
  • lorsque vous faites : *a = b, on aura a = " y " puis *b = a, vous aurez b = 'y'
InformationsquelleAutor user3032809 | 2013-11-25