Operator Sequential-Evaluation

Operator evaluasi berurutan, juga disebut "operator koma," mengevaluasi dua operannya secara berurutan dari kiri ke kanan.

Sintaksis

expression:
assignment-expression
expression , assignment-expression

Operan kiri operator evaluasi berurutan (,) dievaluasi sebagai void ekspresi. Hasil operasi memiliki nilai dan jenis yang sama dengan operand kanan. Setiap operan bisa dari jenis apa pun. Operator evaluasi berurutan tidak melakukan konversi jenis antara operannya, dan tidak menghasilkan nilai l. Ada titik urutan setelah operand pertama, yang berarti semua efek samping dari evaluasi operand kiri selesai sebelum memulai evaluasi operand kanan. Untuk informasi selengkapnya, lihat Titik Urutan.

Operator evaluasi berurutan biasanya digunakan untuk mengevaluasi dua ekspresi atau lebih dalam konteks di mana hanya satu ekspresi yang diizinkan.

Koma dapat digunakan sebagai pemisah dalam beberapa konteks. Namun, Anda harus berhati-hati agar tidak membingungkan penggunaan koma sebagai pemisah dengan penggunaannya sebagai operator; kedua penggunaan tersebut berbeda.

Contoh

Contoh ini menggambarkan operator evaluasi berurutan:

for ( i = j = 1; i + j < 20; i += i, j-- );

Dalam contoh ini, setiap operand for ekspresi ketiga pernyataan dievaluasi secara independen. Operan i += i kiri dievaluasi terlebih dahulu; kemudian operand kanan, j--, dievaluasi.

func_one( x, y + 2, z );
func_two( (x--, y + 2), z );

Dalam panggilan fungsi ke func_one, tiga argumen, dipisahkan oleh koma, diteruskan: x, y + 2, dan z. Dalam panggilan fungsi ke func_two, tanda kurung memaksa pengkompilasi untuk menafsirkan koma pertama sebagai operator evaluasi berurutan. Panggilan fungsi ini meneruskan dua argumen ke func_two. Argumen pertama adalah hasil dari operasi (x--, y + 2)evaluasi berurutan , yang memiliki nilai dan jenis ekspresi y + 2; argumen kedua adalah z.

Lihat juga

Operator Koma: ,