Donc, il n’y a aucun moyen pour square_it de rendre les modifications visibles pour l’appelant. Maintenant, alors que printf n’a pas besoin de changer ses arguments (c’est une fonction de sortie) scanf
scanf
Une chaîne de format scanf (scan formatted) est un paramètre de contrôle utilisé dans diverses fonctions pour spécifier la disposition d’une chaîne d’entrée. Les fonctions peuvent ensuite diviser la chaîne et la traduire en valeurs de types de données appropriés. Les fonctions d’analyse de chaînes sont souvent fournies dans les bibliothèques standard.
https://en.wikipedia.org › wiki › Scanf_format_string
chaîne de format scanf — Wikipédia
fait (il s’agit d’une fonction d’entrée). Par conséquent, il a besoin de pointeurs variables (adresses) comme arguments.
Pouvons-nous utiliser l’esperluette dans printf ?
dans le printf cela fonctionne. Pourquoi donc?
Il diffère également entre le spécificateur de format, par exemple, il n’est pas nécessaire de mettre le signe & (esperluette) dans printf lorsque l’on utilise %c ou %d dans le scanf .
Pourquoi l’esperluette n’est-elle pas utilisée dans la chaîne en C ?
Dans le cas d’une chaîne (tableau de caractères), la variable elle-même pointe sur le premier élément du tableau en question. Ainsi, il n’est pas nécessaire d’utiliser l’opérateur ‘&’ pour transmettre l’adresse. ‘&’ est utilisé pour obtenir l’adresse de la variable.
Pourquoi l’esperluette est-elle utilisée dans scanf ?
L’esperluette (&) nous permet de passer l’adresse de nombre variable qui est l’endroit en mémoire où nous stockons les informations que scanf lit. Le “%s” dans scanf permet à la fonction de reconnaître l’entrée de l’utilisateur comme étant de type chaîne de données, ce qui correspond au type de données de notre mot variable.
Que se passe-t-il si je n’utilise pas & dans scanf ?
Le programme se compilera avec succès. Il imprimera le numéro de manière incorrecte mais il fonctionnera jusqu’à la fin sans se bloquer.