Anggota Struktur dan Union
"Ekspresi pemilihan anggota" mengacu pada anggota struktur dan union. Ekspresi tersebut memiliki nilai dan jenis anggota yang dipilih.
postfix-expression
.
identifier
postfix-expression
->
identifier
Daftar ini menjelaskan dua bentuk ekspresi pemilihan anggota:
Dalam formulir pertama,
postfix-expression
mewakili nilaistruct
atauunion
jenis, danidentifier
menamai anggota struktur atau gabungan yang ditentukan. Nilai operasi adalah danidentifier
merupakan nilai l jikapostfix-expression
merupakan nilai l. Untuk informasi selengkapnya, lihat L-Value dan R-Value Expressions.Dalam bentuk kedua,
postfix-expression
mewakili penunjuk ke struktur atau gabungan, danidentifier
menamai anggota struktur atau gabungan yang ditentukan. Nilainya adalah danidentifier
merupakan nilai l.
Dua bentuk ekspresi pemilihan anggota memiliki efek yang sama.
Faktanya, ekspresi yang melibatkan operator pemilihan anggota (->
) adalah versi singkat dari ekspresi menggunakan titik (.
) jika ekspresi sebelum periode terdiri dari operator tidak langsung (*
) yang diterapkan ke nilai pointer. Karena itu,
expression->identifier
setara dengan:
(*expression).identifier
ketika expression
adalah nilai penunjuk.
Contoh
Contoh berikut mengacu pada deklarasi struktur ini. Untuk informasi tentang operator tidak langsung (*
) yang digunakan dalam contoh ini, lihat Operator Tidak Langsung dan Alamat.
struct pair
{
int a;
int b;
struct pair *sp;
} item, list[10];
Ekspresi pemilihan anggota untuk struktur item
terlihat seperti ini:
item.sp = &item;
Dalam contoh, alamat item
struktur ditetapkan ke sp
anggota struktur. Ini berarti bahwa item
berisi penunjuk ke dirinya sendiri.
(item.sp)->a = 24;
Dalam contoh ini, ekspresi item.sp
penunjuk digunakan dengan operator pemilihan anggota (->
) untuk menetapkan nilai kepada anggota a
.
list[8].b = 12;
Pernyataan ini menunjukkan cara memilih anggota struktur individual dari array struktur.