Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Operator perbandingan dan kesetaraan biner membandingkan operan pertama dengan operan kedua untuk menguji validitas hubungan yang ditentukan. Hasil ekspresi relasional adalah 1 jika hubungan yang diuji benar dan 0 jika salah. Jenis hasilnya adalah int
.
Sintaks
relational-expression
:
shift-expression
relational-expression
<
shift-expression
relational-expression
>
shift-expression
relational-expression
<=
shift-expression
relational-expression
>=
shift-expression
equality-expression
:
relational-expression
equality-expression
==
relational-expression
equality-expression
!=
relational-expression
Operator perbandingan dan kesetaraan menguji hubungan berikut:
Operator | Hubungan yang Diuji |
---|---|
< |
Operan pertama kurang dari operan kedua |
> |
Operan pertama lebih dari operan kedua |
<= |
Operan pertama kurang dari atau sama dengan operan kedua |
>= |
Operan pertama lebih dari atau sama dengan operan kedua |
== |
Operan pertama sama dengan operan kedua |
!= |
Operan pertama tidak sama dengan operan kedua |
Empat operator pertama dalam daftar memiliki prioritas yang lebih tinggi daripada operator kesetaraan (==
dan !=
). Lihat informasi urutan operator dalam tabel Urutan dan Asosiatif Operator C.
Operan dapat bertipe integral, floating, atau pointer. Tipe-tipe operan dapat berbeda. Operator perbandingan melakukan konversi aritmatika yang biasa pada operan tipe integral dan floating. Selain itu, Anda dapat menggunakan kombinasi tipe operan berikut pada operator perbandingan dan kesetaraan:
Operan operator perbandingan atau kesetaraan dapat menjadi pointer ke tipe yang sama. Untuk operator kesetaraan (
==
) dan ketidaksetaraan (!=
), hasil perbandingan menunjukkan apakah kedua pointer menunjuk ke lokasi memori yang sama. Untuk operator relasional lainnya (<
,>
, ,<=
dan>=
), hasil perbandingan menunjukkan posisi relatif dari dua alamat memori objek yang diarahkan. Operator perbandingan hanya membandingkan offset.Perbandingan pointer ditentukan hanya untuk bagian objek yang sama. Jika pointer mengacu pada anggota dari sebuah array, perbandingannya setara dengan perbandingan subskrip yang sesuai. Alamat elemen array pertama adalah "kurang dari" alamat elemen terakhir. Untuk struktur, penunjuk ke anggota struktur yang dinyatakan kemudian adalah penunjuk "lebih besar dari" kepada anggota yang dinyatakan sebelumnya dalam struktur. Pointer ke anggota dari gabungan yang sama adalah sama dengan.
Nilai pointer dapat dibandingkan dengan nilai konstanta 0 untuk kesetaraan (
==
) atau ketidaksetaraan (!=
). Pointer dengan nilai 0 disebut pointer "null"; artinya, itu tidak menunjuk ke lokasi memori yang valid.Operator kesetaraan mengikuti aturan yang sama dengan operator relasional, tetapi mengizinkan lebih banyak kemungkinan: penunjuk dapat dibandingkan dengan ekspresi integral konstan dengan nilai 0, atau ke penunjuk ke
void
. Jika kedua pointer merupakan pointer null, dianggap sebagai sama. Operator kesetaraan membandingkan segmen dan offset.
Contoh
Contoh-contoh ini menggambarkan operator relasional dan kesetaraan.
int x = 0, y = 0;
if ( x < y )
Karena x
dan y
sama, ekspresi dalam contoh ini menghasilkan nilai 0.
char array[10];
char *p;
for ( p = array; p < &array[10]; p++ )
*p = '\0';
Fragmen dalam contoh ini mengatur setiap elemen array
ke konstanta karakter null.
enum color { red, white, green } col;
.
.
.
if ( col == red )
.
.
.
Pernyataan ini mengumumkan variabel enumerasi bernama col
dengan tag color
. Kapan saja, variabel dapat berisi nilai bilangan bulat 0, 1, atau 2, yang mewakili salah satu elemen dari set color
enumerasi : warna red
, , white
atau green
, masing-masing. Jika col
berisi 0 ketika pernyataan if
dijalankan, pernyataan apa pun yang tergantung pada if
akan dijalankan.
Lihat juga
Operator Relasional: <
, >
, <=
, dan >=
Operator Kesetaraan: ==
dan !=