Comme le dit le titre, je me demande toujours pourquoi scanf code> doit prendre l'adresse
de code> opérateur (&). p>
6 Réponses :
Parce que C ne dispose que des paramètres « passe par la valeur », donc de passer une « variable » pour mettre une valeur dans, vous devez passer son adresse (ou un pointeur vers la variable). P>
parce qu'il a besoin l'adresse em> pour placer la valeur qu'il se lit. Si vous vous déclarez variable en tant que pointeur, le scanf code> n'aura pas besoin du
& code>. P>
Lorsque vous entrez quelque chose avec le périphérique d'entrée standard (généralement du clavier), les données qui interviennent doivent être stockées code> quelque part. Vous devez
point code> quelque part dans la mémoire afin que les données puissent être stockées là-bas. Pour
POINT CODE> Un emplacement de mémoire, vous avez besoin de l'adresse
code> de cet emplacement. Vous devez donc transmettre l'adresse de votre variable en utilisant l'opérateur
& code> avec
scanf () code>. P>
Tous les autres ont bien décrit que SSCANF a besoin de mettre sa production quelque part em>, mais pourquoi ne pas le retourner? Becuase il doit renvoyer beaucoup de choses - il peut remplir plus d'une variable (entraîné par la mise en forme) et renvoie un Int indiquant combien de ces variables remplies. P>
scanf ne prend pas "l'adresse de l'opérateur (&)". Il faut un pointeur mais ce n'est pas le seul moyen de le faire. Ce qui suit est tout aussi valide: p> De même, nous pouvons faire la même chose avec le code suivant: p>
J'ai fait des modifications, s'il vous plaît vérifier
Comme la valeur va être stockée, (où?), dans l'adresse mémoire. Donc, Scanf () traite avec (&) opérateur. p>