Dalam tutorial ini, Anda akan belajar tentang prioritas dan asosiasi operator dengan bantuan contoh.
Diutamakan operator
Prioritas operator menentukan operator mana yang dieksekusi lebih dulu jika ada lebih dari satu operator dalam sebuah ekspresi.
Mari kita perhatikan contoh:
int x = 5 - 17* 6;
Di C, prioritas *
lebih tinggi dari -
dan =
. Makanya, 17 * 6
dievaluasi dulu. Kemudian ekspresi yang melibatkan -
dievaluasi karena prioritas -
lebih tinggi daripada =
.
Berikut tabel prioritas operator dari yang lebih tinggi ke yang lebih rendah. Properti asosiatif akan segera dibahas.
Tabel Urutan & Asosiasi Operator
Operator | Arti dari operator | Asosiatif |
---|---|---|
() () -> . | Panggilan fungsional Referensi elemen array Pemilihan anggota tidak langsung Pemilihan anggota langsung | Kiri ke kanan |
! ~ + - ++ - & * sizeof (tipe) | Negasi logis Bitwise (1 's) melengkapi Unary plus Unary minus Increment Decrement Dereference (Address) Pointer referensi Mengembalikan ukuran objek Typecast (konversi) | Kanan ke kiri |
* / % | Kalikan Sisa Pembagi | Kiri ke kanan |
+ - | Biner plus (Penjumlahan) Biner minus (pengurangan) | Kiri ke kanan |
<< >> | Pergeseran kiri Pergeseran kanan | Kiri ke kanan |
< <= > > = | Kurang dari Kurang dari atau sama Lebih besar dari Lebih dari atau sama | Kiri ke kanan |
== ! = | Sama dengan Tidak sama dengan | Kiri ke kanan |
& | Bitwise DAN | Kiri ke kanan |
^ | Eksklusif bitwise ATAU | Kiri ke kanan |
| | Bitwise ATAU | Kiri ke kanan |
&& | DAN logis | Kiri ke kanan |
|| | Logis ATAU | Kiri ke kanan |
?: | Operator Bersyarat | Kanan ke kiri |
= * = / = % = + = - = & = = | = << = >> = | Tugas sederhana produk Tetapkan Tetapkan quotient Tetapkan sisa Tetapkan jumlah Tetapkan perbedaan Tetapkan bitwise DAN Tetapkan bitwise XOR Tetapkan bitwise OR Tetapkan meninggalkan pergeseran Tetapkan shift kanan | Kanan ke kiri |
, | Pemisah ekspresi | Kiri ke kanan |
Asosiasi Operator
Asosiasi operator menentukan arah di mana ekspresi dievaluasi. Sebagai contoh,
b = a;
Di sini, nilai a ditetapkan ke b, dan bukan sebaliknya. Itu karena asosiasi =
operator dari kanan ke kiri.
Selain itu, jika ada dua operator dengan prioritas yang sama (prioritas), asosiativitas menentukan arah eksekusi.
Mari kita perhatikan contoh:
1 == 2! = 3
Di sini, operator ==
dan !=
memiliki hak yang sama. Dan, asosiatif mereka dari kiri ke kanan. Makanya, 1 == 2
dieksekusi dulu.
Ekspresi di atas sama dengan:
(1 == 2)! = 3
Catatan: Jika pernyataan memiliki banyak operator, Anda dapat menggunakan tanda kurung ()
agar kode lebih mudah dibaca.