comment définir une valeur int passée par paramètre à une fonction et l’affecter à global afin que je puisse l’utiliser en dehors de la fonction?

comment définir une valeur int passée par paramètre à une fonction et l’affecter à global afin que je puisse l’utiliser en dehors de la fonction?

Exemple:

int assignValues(int valor_assign1, valor_assign2){ valor_assign1 = 7; valor_assign2 = 3; } main (){ int valor1 = 0; int valor2 = 0; assignValues(valor1,valor2); printf("%d,%d",valor1, valor2); } 

La sortie est en réalité 0,0 Je veux qu’il soit 7,3 comment puis-je faire cela? Je sais que c’est une question simple mais j’ai essayé et cherché mais je n’ai rien trouvé de tel = / Merci d’avance.

Vous pouvez passer un pointeur sur vos entiers dans la fonction, au lieu de transmettre les valeurs. Par exemple:

 int assignValues(int *valor_assign1, int *valor_assign2){ *valor_assign1 = 7; *valor_assign2 = 3; } main (){ int valor1 = 0; int valor2 = 0; assignValues(&valor1, &valor2); printf("%d,%d",valor1, valor2); } 

Vous voudrez peut-être lire un didacticiel de pointeur , cependant.

Passez les pointeurs:

 int assignValues(int *valor_assign1, int *valor_assign2){ *valor_assign1 = 7; *valor_assign2 = 3; } main (){ int valor1 = 0; int valor2 = 0; assignValues(&valor1,&valor2); printf("%d,%d",valor1, valor2); } 

Vous passez des pointeurs sur les variables:

 void assignvalues(int *v1, int *v2) { *v1 = 7; *v2 = 3; } 

Mais, dans votre extrait, valor1 et valor2 ne sont pas globaux. Ils sont locaux à main . S’ils étaient globaux, vous pouvez simplement leur assigner

 #include  int valor1; /* global */ int valor2; /* variables */ int assignvalues(void) { valor1 = 7; valor2 = 3; } int main(void) { printf("%d, %d\n", valor1, valor2); } 

Remarque: l’utilisation de globals est mal vue. Votre utilisation, avec des variables locales, est bien meilleure.