Pointer vs Array
Pointer adalah tipe data yang menyimpan referensi ke lokasi memori (mis. Variabel pointer menyimpan alamat lokasi memori di mana beberapa data disimpan). Array adalah struktur data yang paling umum digunakan untuk menyimpan kumpulan elemen. Sebagian besar bahasa pemrograman menyediakan metode untuk dengan mudah mendeklarasikan array dan mengakses elemen dalam array.
Apa itu Pointer??
Pointer adalah tipe data yang menyimpan alamat lokasi memori tempat sejumlah data disimpan. Dengan kata lain, pointer memegang referensi ke lokasi memori. Mengakses data yang disimpan di lokasi memori yang dirujuk oleh pointer disebut dereferencing. Saat melakukan operasi berulang seperti melintasi pohon / string, pencarian tabel, dll., Menggunakan pointer akan meningkatkan kinerja. Ini karena dereferencing dan menyalin pointer lebih murah daripada benar-benar menyalin dan mengakses data yang ditunjuk oleh pointer. Null pointer adalah pointer yang tidak menunjuk ke apa pun. Di Jawa, mengakses pointer nol akan menghasilkan pengecualian yang disebut NullPointerException.
Apa itu Array??
Ditampilkan pada gambar 1, adalah bagian dari kode yang biasanya digunakan untuk mendeklarasikan dan menetapkan nilai ke array. Gambar 2 menggambarkan bagaimana sebuah array akan terlihat seperti dalam memori.
nilai int [5]; nilai [0] = 100; nilai [1] = 101; nilai [2] = 102; nilai [3] = 103; nilai [4] = 104; |
Gambar 1: Kode untuk mendeklarasikan dan menetapkan nilai ke array
100 | 101 | 102 | 103 | 104 |
Indeks: 0 | 1 | 2 | 3 | 4 |
Gambar 2: Array tersimpan di dalam memori
Kode di atas mendefinisikan sebuah array yang dapat menyimpan 5 bilangan bulat dan mereka diakses menggunakan indeks 0 hingga 4. Salah satu properti penting dari array adalah bahwa, seluruh array dialokasikan sebagai satu blok memori dan setiap elemen mendapatkan ruangnya sendiri dalam array. . Setelah array didefinisikan, ukurannya tetap. Jadi jika Anda tidak yakin tentang ukuran array pada waktu kompilasi, Anda harus mendefinisikan array yang cukup besar untuk berada di sisi yang aman. Tetapi, sebagian besar waktu, kita sebenarnya akan menggunakan lebih sedikit elemen daripada yang telah kita alokasikan. Jadi sejumlah besar memori sebenarnya terbuang sia-sia. Di sisi lain jika "array cukup besar" sebenarnya tidak cukup besar, program akan macet.
Apa perbedaan antara Pointer dan Array?
Pointer adalah tipe data yang menyimpan alamat lokasi memori di mana beberapa data disimpan, sedangkan Array adalah struktur data yang paling umum digunakan untuk menyimpan kumpulan elemen. Dalam bahasa pemrograman C, pengindeksan array dilakukan dengan menggunakan pointer aritmatika (yaitu elemen ke-i dari array x akan setara dengan * (x + i)). Oleh karena itu dalam C, set pointer yang menunjuk ke set lokasi memori yang berurutan, dapat dianggap sebagai array. Lebih jauh, ada perbedaan dalam cara ukuran operator beroperasi pada pointer dan array. Ketika diterapkan ke array, sizeof operator akan mengembalikan seluruh ukuran array, sedangkan ketika diterapkan pada pointer, itu akan mengembalikan hanya ukuran pointer.