Aritmetika: Operasi
Pelajaran 4 dari 14 dalam kursus Pointer C++ di Coddy.
++ / --
Menambah atau mengurangi pointer akan memindahkannya ke lokasi memori berikutnya atau sebelumnya dengan tipe data yang sama. Ini sangat berguna saat kita memiliki array dan mengatur pointer agar menunjuk ke elemen pertama. Setiap kali ditambah, pointer berpindah satu elemen ke kanan.
int list[] = {1, 2, 3, 4, 5};
int *ptr = &list[0];
cout << *ptr << " ";
ptr++;
cout << *ptr << " ";
ptr--;
cout << *ptr;Output:
1 2 1Seperti yang kamu lihat, saat kita menambah atau mengurangi pointer, kita berpindah ke lokasi memori berikutnya dengan tipe yang sama. Dalam kasus ini, kita berpindah ke elemen berikutnya atau sebelumnya dalam array.
+= / -=
Menambahkan atau mengurangi angka yang lebih besar dari 1 dapat membantu kita berpindah lebih cepat dan melewati lebih banyak elemen sekaligus.
int list[] = {1, 2, 3, 4, 5};
int *ptr = &list[0];
cout << *ptr << " ";
ptr += 4;
cout << *ptr << " ";
ptr -= 2;
cout << *ptr;Output:
1 5 3n = p2 - p1
Operasi berguna terakhir yang dapat kita lakukan dengan pointer adalah menghitung jumlah elemen di antara keduanya. Kita dapat melakukannya dengan menghitung selisihnya.
int list[] = {1, 2, 3, 4, 5};
int *ptr = &list[0];
int *ptr2 = &list[4];
cout << "Between " << *ptr << " and " << *ptr2
<< " there's " << ptr2-ptr << " elements";Output:
Between 1 and 5 there's 4 elementsKita dapat menggunakan 3 teknik ini untuk melakukan banyak operasi berguna dengan pointer dan menyelesaikan masalah dalam tugas rutin kita.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Tantangan
MudahDiberikan array bilangan bulat berikut:
int numbers[] = {10, 20, 30, 40, 50, 60, 70, 80};- Buat pointer
ptr1yang menunjuk ke elemen pertama array. - Buat pointer
ptr2dan tetapkan nilaiptrkepadanya. - Naikkan nilai
ptr2untuk berpindah ke elemen keempat. - Buat
ptr3dan tetapkan nilaiptr2kepadanya. - Turunkan nilai
ptr3sebanyak 2 posisi. - Hitung dan CETAK jumlah elemen di antara elemen pertama dan terakhir dalam array menggunakan pengurangan pointer dengan format berikut:
There are {elements} elements between {first} and {last}
Coba sendiri
#include <iostream>
using namespace std;
int main() {
int numbers[] = {10, 20, 30, 40, 50, 60, 70, 80};
// Masukkan kode untuk ptr1
// Masukkan kode untuk ptr2
// Masukkan kode untuk ptr3
// Tampilkan pesan yang diminta
// JANGAN UBAH APA PUN DI BAWAH INI
// ---------------------------------
cout << "*ptr1 -> " << *ptr1 << endl;
cout << "*ptr2 -> " << *ptr2 << endl;
cout << "*ptr3 -> " << *ptr3 << endl;
return 0;
}Semua pelajaran di Pointer C++
1Dasar-Dasar Pointer
Pengenalan PointerDeklarasi dan InisialisasiAritmetika: PenugasanAritmetika: OperasiPointer KonstanPointer dan Array3Alokasi Memori Dinamis
Operator new & deleteKebocoran Memoriarray DinamisPenyisipan pada array DinamisLatihan sendiri: Compiler C++ online