C++: Ampersand (&) vs Asterisk (*)
Dalam bahasa pemrograman C++, ampersand (&) dan asterisk (*) memiliki peran penting dalam manipulasi alamat memori dan pointer. Kesalahpahaman antara keduanya sering terjadi, sehingga memahami perbedaannya sangat penting.
Ampersand (&): Operator Address-of
Ampersand (&) dikenal sebagai operator address-of. Fungsinya adalah untuk mengambil alamat memori dari suatu variabel.
Contoh:
int angka = 10;
int *ptr = &angka; // Menyimpan alamat memori dari variabel 'angka' ke dalam pointer 'ptr'
Dalam contoh di atas, &angka
mengembalikan alamat memori dari variabel angka
. Alamat ini kemudian disimpan dalam pointer ptr
.
Asterisk (*): Operator Dereference
Asterisk (*) disebut sebagai operator dereference. Fungsinya adalah untuk mengakses nilai yang disimpan pada alamat memori yang ditunjuk oleh pointer.
Contoh:
int angka = 10;
int *ptr = &angka;
int nilai = *ptr; // Mengambil nilai dari alamat memori yang ditunjuk oleh 'ptr' dan menyimpannya dalam 'nilai'
Dalam contoh ini, *ptr
mengakses nilai yang berada pada alamat memori yang ditunjuk oleh pointer ptr
. Nilai tersebut kemudian disimpan dalam variabel nilai
.
Perbedaan Utama:
- Ampersand (&) mengambil alamat memori dari variabel.
- Asterisk (*) mengakses nilai yang berada pada alamat memori yang ditunjuk oleh pointer.
Penggunaan Umum:
- Ampersand (&) digunakan saat membuat pointer, untuk menyimpan alamat memori suatu variabel.
- Asterisk (*) digunakan untuk mengakses nilai dari alamat memori yang ditunjuk oleh pointer.
Kesimpulan:
Ampersand dan asterisk adalah operator yang sangat penting dalam C++. Memahami perbedaannya akan membantu Anda memahami konsep pointer dan manipulasi alamat memori. Ingatlah, ampersand untuk mengambil alamat, dan asterisk untuk mengakses nilai yang berada pada alamat tersebut.