50 ROMANTIC MINIATURES: A Romantic Coloring Book, Featuring 50 Lovely Illustrations of Ador

50 ROMANTIC MINIATURES: A Romantic Coloring Book, Featuring 50 Lovely Illustrations of Ador

Diketahui sebuah array x dengan jumlah baris 10 buah dan jumlah kolom 20 buah. jelaskan bagaimana cara mencetak data x[1][1+5] menggunakan pointer.

Diketahui sebuah array x dengan jumlah baris 10 buah dan jumlah kolom 20 buah. jelaskan bagaimana cara mencetak data x[1][1+5] menggunakan pointer.

Jawaban:

Elemen x[1][1+5] bisa direferensikan menggunakan pointer:

*(*(x + 1) + 1+5)

Jadi, untuk mencetaknya, bisa menggunakan sintaks:

cout << *(*(x + 1) + 1+5);

Penjelasan:

Akses Array Menggunakan Pointer (C/C++)

Jika x adalah array 1 dimensi:

x[i] = *(x+ i)    <---- elemen x pada kolom ke-i

Jika x adalah array 2 dimensi:

x[i][j] = *(*(x + i) + j)    <---- elemen x pada baris ke-i kolom ke-j

Dalam pertanyaan, yang diminta adalah mencetak x[1][1+5]. Sebenarnya ini sia-sia, mengapa nomor kolom ditentukan 1+5. Karena kita tahu bahwa 1+5=6.

x[1][1+5] merujuk elemen x pada baris ke-2 dan kolom ke-7, karena dalam C/C++ indeks dimulai dari 0, bukan 1.

Di bawah ini saya lampirkan kode program contoh pengaksesan elemen array menggunakan pointer. Semoga bisa membantu memahaminya.

Didefinisikan array 2 dimensi bernama x, dengan ukuran dimensi 10 baris dan 20 kolom. Array x diinisialisasi dengan integer sebagai berikut:

1 2 3 4 5 6 7 ... 19 20

21 22 23 24 25 26 27 ... 39 40

...

181 182 183 184 185 186 187 ... 199 200

#include <iostream>

using namespace std;

int main() {

   int x[10][20];

   // hanya untuk inisialisasi saja

   for (int i=0; i<10; i++) {

       for (int j=0; j<20; j++) {

           x[i][j] = i*20+j+1;

       }

   }

   cout << "x[1][1+5] adalah " << *(*(x + 1) + 1+5) << endl;

   cout << "x[1][6] adalah " << *(*(x + 1) + 6) << endl;

   cout << "x[baris terakhir][kolom terakhir] adalah " << *(*(x + 9) + 19) << endl;

   cout << "Elemen array x pada baris ke-5 adalah\n";

   for (int j=0; j<20; j++) {

       cout << *(*(x + 4) + j) << " ";

   }

   cout << endl;

   return 0;

}

Hasil eksekusinya:

x[1][1+5] adalah 27

x[1][6] adalah 27

x[baris terakhir][kolom terakhir] adalah 200

Elemen array x pada baris ke-5 adalah

81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

[answer.2.content]