Menu
CoddyTech

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 1

Seperti 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 3

n = 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 elements

Kita dapat menggunakan 3 teknik ini untuk melakukan banyak operasi berguna dengan pointer dan menyelesaikan masalah dalam tugas rutin kita.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

challenge icon

Tantangan

Mudah

Diberikan array bilangan bulat berikut:

int numbers[] = {10, 20, 30, 40, 50, 60, 70, 80};
  • Buat pointer ptr1 yang menunjuk ke elemen pertama array.
  • Buat pointer ptr2 dan tetapkan nilai ptr kepadanya.
  • Naikkan nilai ptr2 untuk berpindah ke elemen keempat.
  • Buat ptr3 dan tetapkan nilai ptr2 kepadanya. 
  • Turunkan nilai ptr3 sebanyak 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++

Latihan sendiri: Compiler C++ online