En C ce qui suit est un code valide:Quel est le nom de ce type d'instruction C?
if ((a, a+b, a*b) >= 0) {
....
}
Est-ce que la partie (a, a+b, a*b)
ont un nom spécial?
En C ce qui suit est un code valide:Quel est le nom de ce type d'instruction C?
if ((a, a+b, a*b) >= 0) {
....
}
Est-ce que la partie (a, a+b, a*b)
ont un nom spécial?
x, y
est appelée une expression de virgule.
,
est appelé l'opérateur virgule en C et (x, y, z)
est le même que ((x, y), z)
.
Il ne doit pas être confondu avec la virgule qui sépare les arguments de fonction et qui n'est pas l'opérateur de virgule.
Suggestion de langue: Je pense que "il ne faut pas être confus" est meilleur. –
@DanielFisher merci, je le prends – ouah
Il est à noter que l'opérateur de virgule évalue de gauche à droite, mais le résultat de celui-ci est toujours le bon opérateur. Le résultat de l'évaluation de l'opérateur de gauche est ignoré. Donc (x, y) évaluerait y, donc ((x, y), z) est égal à (y, z). Alors (y, z) évaluerait z. – Lundin
C'est une expression plutôt inutile. Chaque partie est évaluée, mais aucune évaluation n'a d'effet permanent, à l'exception de celle utilisée pour la comparaison. – chris
@chris comme toujours, sauf si 'a' et' b' sont 'volatils', auquel cas l'accès a des effets secondaires. – ouah
@ouah, Bon à regarder toutes les possibilités. – chris