Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Operator przecinka:
Umożliwia grupowanie dwóch instrukcji, w których jeden jest oczekiwany.
Składnia
expression , expression
Uwagi
Operator przecinka ma skojarzenie od lewej do prawej. Dwa wyrażenia oddzielone przecinkami są obliczane od lewej do prawej. Lewy operand jest zawsze oceniany, a wszystkie skutki uboczne są wykonywane przed oceną prawego operandu.
Przecinki mogą być używane jako separatory w niektórych kontekstach, takich jak listy argumentów funkcji. Nie należy mylić użycia przecinka jako separatora z jego użyciem jako operator; te dwa zastosowania są zupełnie inne.
Rozważ wyrażenie e1, e2
. Typ i wartość wyrażenia są typem i wartością e2; wynik oceny e1 jest odrzucany. Wynik jest wartością l, jeśli prawy operand jest wartością l.
Jeśli przecinek jest zwykle używany jako separator (na przykład w rzeczywistych argumentach funkcji lub zagregowanych inicjatorów), operator przecinka i jego operandy muszą być ujęte w nawiasy. Na przykład:
func_one( x, y + 2, z );
func_two( (x--, y + 2), z );
W wywołaniu funkcji powyżej func_one
trzy argumenty rozdzielone przecinkami są przekazywane: x
, y + 2
, i z
. W wywołaniu funkcji do func_two
, nawiasy wymuszają, aby kompilator interpretował pierwszy przecinek jako operator oceny sekwencyjnej. To wywołanie funkcji przekazuje dwa argumenty do func_two
. Pierwszy argument jest wynikiem operacji (x--, y + 2)
sekwencyjnej oceny , która ma wartość i typ wyrażenia y + 2
; drugim argumentem jest z
.
Przykład
// 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);
}
20
30
Zobacz też
Wyrażenia z operatorami dwuargumentowymi
Wbudowane operatory, pierwszeństwo i kojarzenie języka C++
Operator obliczania sekwencyjnego