non int ... ( ! 0) (! 1) - C - Programmation
Marsh Posté le 20-03-2006 à 14:49:15
Oui.
Tout ce qui est non nul retournera 0 avec !, ça fonctionne aussi avec les pointeurs, les entiers, etc.
Marsh Posté le 20-03-2006 à 15:31:09
uleur a écrit : salut
|
En C, la valeur entière "0" corresond au booléen "false" et toutes les autres valeurs entières correspondent à "true" (conceptuellement, dans les faits le C pre C99 n'a pas de booléens et utilise 0 et 1).
Le résultat, c'est que !0 donnera une valeur indéfinie mais considérée "vraie" (au sens booléen) 1 et !x avec x!=0 donnera 0
Voir la FAQ comp.lang.c sur les types booléens pour plus d'infos (et accessoirement ce serait une bonne idée de lire toute la faq) (et le site du forumeur Emmanuel Delahaye [sp?], regarde un peu la cat C tu le trouveras facilement)
edit boulette
Marsh Posté le 20-03-2006 à 15:49:58
Il me semble que certains ouvrages recommandent de ne pas traiter les entiers comme des booleéns mais à la place d'écrire l'expression complète:
Code :
|
Question de compréhension peut être.
Marsh Posté le 20-03-2006 à 17:19:39
slash33 a écrit : Il me semble que certains ouvrages recommandent de ne pas traiter les entiers comme des booleéns mais à la place d'écrire l'expression complète:
|
C'est surtout une question de choix de l'identificateur. C'est sûr que
Code :
|
ou
Code :
|
n'a aucun sens. Par contre
Code :
|
est parfaitement clair et autodocumenté.
Marsh Posté le 20-03-2006 à 17:19:56
Emmanuel Delahaye a écrit : Non. !0 donne 1. C'est garanti par le langage. De même !(entier_different_de _0) donne 0. |
Hum oui je l'ai relu après mais j'ai oublié de corriger, j'édite tout de suite
Marsh Posté le 20-03-2006 à 14:41:15
salut
je sais que si on fait l'instruction suivant :
on va tester le contraire de l'instruction .
mais je ve savoir si sela marche egalement , lorsque l'expression est un int :
exemple:
j'ai une variable f qui prand soit la val 1 soit la val 0 .
et je ve tester le contraire (si non f) càd:
esque on peut faire ca. non int