6
votes

Quelle est la signification de '==' en C?

Quelle est la signification de == et comment va-t-elle différer de = ?

Comment savoir lequel utiliser?


1 commentaires

Les commentaires ont supprimé parce qu'ils ont dissipé l'attention de la réponse. Ainsi, une politique assez claire de aucune question n'est trop triviale ou trop "Newbie". indiqué dans la FAQ ( Stackoverflow.com/ FAQ ). Si vous souhaitez discuter de cette politique, veuillez le prendre sur meta.stackoverflow.com


5 Réponses :


5
votes

== Tests Égalité = attribue une valeur

Ni sont liés à ||


0 commentaires

21
votes

== code> est un test d'égalité. = code> est une affectation.

Tout bon livre C devrait couvrir ceci (assez tôt dans le livre, j'imagine). p>

Par exemple: P>

||
&&
b4


1 commentaires

CPPreference.com/wiki/OPERATOR_PRECEDENCE , CPLUSPLUS.COM/doc/Tutorial . Vérifiez ces sites Web, ils ont été une aide réelle lorsque j'apprendais C ++.



11
votes

a == B est un test si a et b est égal.

a = b est appelé une affectation , ce qui signifie de définir la variable a pour avoir la même valeur que b < / em>.

(vous tapez | avec shift- \ dans la disposition du clavier américain.)


0 commentaires

3
votes

Je pourrais ajouter cela dans des claviers finlandais et suédois. Symbole de tuyau; |; de ou est Altgr (la droite alt) et

m'a donné beaucoup de sueur lorsque j'ai commencé à taper sur ces claviers.


0 commentaires

2
votes

Maintenant que vous connaissez la différence entre "==" et "=", permettez-moi de vous mettre des mots de prudence. Bien que "==" soit utilisé comme test standard d'égalité entre variables comparables et "=" utilisé comme étant utilisé Une mission de type à caractère interne, l'erreur de programmation suivante est courante silencieuse.

Dans l'exemple ci-dessous et des codes similaires, '=' est connu sous " Toujours vrai " Opérateur conditionnel. xxx

Donc, le mot de prudence est "N'utilisez jamais ' = " dans si déclarations, à moins que vous n'ayez quelque chose de mal dans votre esprit . "


3 commentaires

Quoi? Il n'y a rien de si élégant que: if (fh = fopen ("fichier.txt", "r") {process_file (fh); ferme (fh);} // :-)


Je l'appellerais également le "Toujours vrai et la buggère dans le haut de moi en tant qu'opérateur conditionnel" bonus. Mais bon conseil si +1.


@paxdiablo: Vous avez raison ... mais j'ai eu l'intention de faire preuve de prudence pour le débutant seulement. Toutefois, dans les codes Goofy si je veux un descripteur de fichier en double comme «FH», cela conduirait à des bluchemins: si (fd = fh = fopen ("fichier.txt", "r") {// Quelqu'un);