Perbedaan antara penunjuk dan array

Perbedaan antara penunjuk dan array

Pointer vs Array

Pointer adalah tipe data yang memegang referensi ke lokasi memori (i.e. 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 elemen akses dalam array.

Apa itu penunjuk?

Pointer adalah tipe data yang menyimpan alamat lokasi memori di mana beberapa 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 meja, dll., Menggunakan pointer akan meningkatkan kinerja. Ini karena pointer dereferencing dan penyalinan lebih murah daripada benar -benar menyalin dan mengakses data yang ditunjuk oleh pointer. Penunjuk nol adalah penunjuk yang tidak menunjukkan apa pun. Di Java, mengakses pointer nol akan menghasilkan pengecualian yang disebut nullpointerexception.

Apa itu array?

Ditunjukkan pada Gambar 1, adalah sepotong kode yang biasanya digunakan untuk mendeklarasikan dan menetapkan nilai ke array. Gambar 2 menggambarkan bagaimana suatu array akan terlihat 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 yang disimpan dalam memori

Kode di atas mendefinisikan array yang dapat menyimpan 5 bilangan bulat dan diakses menggunakan indeks 0 hingga 4. Salah satu sifat penting dari suatu array adalah bahwa, seluruh array dialokasikan sebagai satu blok memori dan setiap elemen mendapatkan ruang sendiri dalam array. Setelah array didefinisikan, ukurannya diperbaiki. Jadi jika Anda tidak yakin tentang ukuran array pada waktu kompilasi, Anda harus menentukan array yang cukup besar untuk berada di sisi yang aman. Tapi, sebagian besar waktu, kita sebenarnya akan menggunakan lebih sedikit elemen daripada yang telah kita alokasikan. Jadi sejumlah besar memori sebenarnya terbuang. Di sisi lain jika "array yang 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 (i.e. elemen ith array x akan setara dengan *(x+i)). Oleh karena itu di C, set pointer yang menunjuk ke satu set lokasi memori yang berturut -turut, dapat dianggap sebagai array. Selanjutnya, ada perbedaan dalam bagaimana sizeof operator beroperasi pada pointer dan array. Saat diterapkan pada array, operator ukuran akan mengembalikan seluruh ukuran array, sedangkan saat diterapkan pada pointer, itu akan mengembalikan ukuran pointer hanya.