En C++, ,
est un opérateur, et donc (23,34)
est une expression comme (23+34)
est une expression. Dans le premier, ,
est un opérateur, tandis que dans le dernier, +
est un opérateur. Donc l'expression (23,34)
évalue à l'opérande le plus à droite qui est 34
, c'est pourquoi votre code sort 34
.
Je voudrais aussi mentionner que ,
n'est pas un opérateur dans un appel de fonction:
int m = max(a,b);
Ici ,
agit un séparateur d'arguments. Il n'agit pas en tant qu'opérateur. Donc, vous passez deux arguments à la fonction.
Cependant,
int m = max((a,b), c);
Ici premier ,
est un opérateur, et le second est ,
un séparateur. Donc, vous passez encore deux arguments à la fonction, pas trois, et c'est équivalent à ceci:
int m = max(b, c); //as (a,b) evaluates to b
Hope that helps. :-)
Bien sûr, la signification réelle est que certains smart ass ont utilisé l'opérateur virgule, ce qui est très rarement justifié. – Yakk