Pointer dan Array
Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 5 dari 56.
array dan pointer memiliki hubungan khusus dalam C++. Saat kamu mendeklarasikan array, nama array sebenarnya berfungsi sebagai pointer ke elemen pertama array tersebut. Hubungan ini memungkinkan kamu menggunakan pointer untuk bekerja dengan array dengan cara yang efektif.
Perhatikan deklarasi array ini:
int numbers[5] = {10, 20, 30, 40, 50};
int* ptr = numbers; // ptr sekarang menunjuk ke numbers[0]Di sini, numbers setara dengan &numbers[0], keduanya memberimu alamat elemen pertama. Pointer ptr kini menunjuk ke lokasi yang sama.
Setelah memiliki pointer ke array, kamu bisa menggunakan aritmetika pointer untuk menavigasi elemen-elemennya. Menambahkan 1 ke pointer akan memindahkannya ke elemen berikutnya dengan tipe yang sama:
ptr++; // Sekarang menunjuk ke numbers[1]
ptr = ptr + 2; // Sekarang menunjuk ke numbers[3]Kamu dapat melakukan dereferensi pointer pada posisi mana pun untuk mengakses nilainya: *ptr memberimu nilai pada posisi saat ini, dan *(ptr + 1) memberimu nilai elemen berikutnya.
Hubungan pointer-array ini memungkinkan kamu menelusuri array menggunakan pointer, bukan perulangan berbasis indeks tradisional, sehingga menawarkan pendekatan alternatif untuk menelusuri array.
Tantangan
MudahBuat program yang menggunakan pointer untuk mengiterasi array dan mencetak setiap elemennya, sehingga menunjukkan hubungan antara pointer dan array.
Kamu diberi array berikut:
int values[6] = {15, 23, 8, 42, 17, 31};Programmu harus:
- Membuat pointer bernama
ptryang menunjuk ke elemen pertama dari arrayvalues - Menggunakan aritmetika pointer untuk mengiterasi semua 6 elemen array
- Mencetak setiap elemen dengan melakukan dereferensi pointer pada setiap posisi
- Memindahkan pointer ke elemen berikutnya menggunakan aritmetika pointer (menambah nilai pointer)
Cetak setiap elemen pada baris terpisah dengan format berikut:
Element: [value]Output harus menampilkan semua 6 elemen dalam urutan kemunculannya di array, yang diakses melalui dereferensi pointer, bukan melalui pengindeksan array.
Coba sendiri
#include <iostream>
using namespace std;
int main() {
// Array yang diberikan
int values[6] = {15, 23, 8, 42, 17, 31};
// TODO: Buat pointer bernama 'ptr' yang menunjuk ke elemen pertama array
// TODO: Gunakan perulangan untuk mengakses semua 6 elemen dengan aritmetika pointer
// TODO: Cetak setiap elemen dengan melakukan dereferensi pada pointer
// TODO: Pindahkan pointer ke elemen berikutnya dengan aritmetika pointer
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi VektorLatihan sendiri: Compiler C++ online