Operátor čárka:,
Umožňuje seskupování dva příkazy, kde je očekáván jeden.
expression , expression
Poznámky
Operátor čárka má asociativitu zleva doprava.Dva výrazy oddělené čárkou se vyhodnocují zleva doprava.Levý operand vždy vyhodnocovány a všechny vedlejší účinky jsou dokončeny před pravý operand je vyhodnocena.
Čárky lze použít jako oddělovače v některých souvislostech, jako je například seznam argumentů funkce.Nezaměňujte použít čárku jako oddělovač jeho použití jako operátor; používá dvě jsou zcela odlišné.
Zvažte výraz
e1 , e2
Typ a hodnota výrazu jsou typ a hodnotu e2; výsledek hodnocení e1 je zahozen.Výsledkem je l hodnota, pokud pravý operand je l hodnota.
Pokud běžně používaný čárka jako oddělovač (například v skutečné argumenty funkce nebo agregační Inicializátory) operátor čárka a jeho operandy musí být uzavřeny v závorkách.Příklad:
func_one( x, y + 2, z );
func_two( (x--, y + 2), z );
Ve funkci volat func_one , předávají se tři argumenty, oddělené čárkami,: x, y + 2, a z.Ve funkci volat func_two, vynutí závorky kompilátor interpretovat první čárka jako operátor průběžné hodnocení.Toto volání funkce předá dva argumenty k func_two.První argument je výsledek operace sekvenční hodnocení (x--, y + 2), který má hodnotu a typ výrazu y + 2; druhý argument je z.
Příklad
// cpp_comma_operator.cpp
#include <stdio.h>
int main () {
int i = 10, b = 20, c= 30;
i = b, c;
printf("%i\n", i);
i = (b, c);
printf("%i\n", i);
}
Viz také
Referenční dokumentace
Přednost a asociativita operátorů