Maison >développement back-end >C++ >Pourquoi X % 0 est-il invalide en C ?
Impossible de Mod Zero ?
Pourquoi l'expression X % 0 est-elle invalide dans les langages de programmation comme C ? Intuitivement, on pourrait s'attendre à ce qu'il renvoie le reste de X, similaire à la division.
Selon la norme C (2003), le comportement des opérateurs / et % n'est pas défini lorsque le deuxième opérande (le diviseur) est zéro :
[...] If the second operand of / or % is zero the behavior is undefined [...]
Par conséquent, les expressions suivantes invoquent un comportement non défini (UB) :
X / 0; // UB X % 0; // UB
Ce comportement non défini signifie que le résultat exact de ces expressions est imprévisible et peut varier en fonction de le compilateur ou l'implémentation spécifique.
De plus, il est important de noter que le reste de -5 % 2 n'est pas simplement le négatif de 5 % 2. Le signe du reste lorsque les deux opérandes sont non positifs est l'implémentation -défini, non standardisé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!