J'ai rencontré un problème impliquant des points d'exclamation et des entiers lors de la lecture d'un code dans mon livre de référence.
Disons que j'ai déclaré une variable entière nommée numéro - int number = 0;
J'utilise ensuite une fonction while impliquant un point d'exclamation et number
while(!number)
{
...
}
Je suis confus avec cela parce que je ne sais pas ce que signifie !number
et quels seraient les résultats renvoyés possibles? Je ne sais pas si cela peut être utilisé, mais comme je l'ai dit, je l'ai vu dans mon livre.
Par conséquent, ce serait bien si quelqu'un pouvait me dire que signifie !number
et que fait-il évaluer?
Merci d'avance.
nous pouvons traiter !
comme non. Donc, si nombre est différent de zéro (+ ve ou -Ve), il renvoie zéro. Si c'est zéro, il retourne 1.
int i = 13;
printf("i = %d, !i = %d\n", i, !i);
printf("!0 = %d\n", !(0));
En C,! Nombre sera évalué à 1 si nombre == 0 et à 0 si nombre! = 0. Et en C, 1 est vrai et 0 est faux.
L'utilisation d'une comparaison explicite telle que nombre == 0 a le même effet, mais vous pouvez la trouver plus facile à lire.
C'est une négation ou un "non" opérateur. En pratique! Nombre signifie "vrai si nombre == 0, faux sinon". Google "opérateurs unaires" pour en savoir plus.
Il est utilisé pour la négation d'un nombre. C'est un opérateur unaire.
Par exemple:-
Si nous l'utilisons avec zéro: -! 0 alors il deviendra 1
avec un! 1 = 0
L'opérateur negation (! ) inverse simplement la signification de son opérande.
L'opérande ou l'expression doit être de type arithmétique ou pointeur. Mais l'opérande/le résultat de l'expression est implicitement converti en type de données bool (le booléen 0 signifie faux, Non nul signifie vrai).
Le résultat est vrai si l'opérande converti est faux; le résultat est faux si l'opérande converti est vrai. Le résultat est de type bool.
alors
while(!number)
{
...
}
puisque le nombre variable est 0, alors que (! nombre) c'est-à-dire! 0 qui est 'négation de 0' qui est 'VRAI' alors le code entre dans la boucle while ()