Penunjuk vs array
Penunjuk adalah jenis data yang memegang rujukan ke lokasi memori (i.e. Pembolehubah penunjuk menyimpan alamat lokasi memori di mana beberapa data disimpan). Array adalah struktur data yang paling biasa digunakan untuk menyimpan koleksi elemen. Kebanyakan bahasa pengaturcaraan menyediakan kaedah untuk mengisytiharkan array dan elemen akses dengan mudah.
Apa itu penunjuk?
Penunjuk adalah jenis data yang menyimpan alamat lokasi memori di mana beberapa data disimpan. Dengan kata lain, penunjuk memegang rujukan ke lokasi memori. Mengakses data yang disimpan di lokasi memori yang dirujuk oleh penunjuk dipanggil dereferencing. Semasa melakukan operasi berulang seperti melintasi pokok/rentetan, carian meja, dan lain -lain., Menggunakan petunjuk akan meningkatkan prestasi. Ini kerana penunjuk dereferencing dan penyalinan lebih murah daripada sebenarnya menyalin dan mengakses data yang ditunjuk oleh petunjuk. Penunjuk null adalah penunjuk yang tidak menunjuk kepada apa -apa. Di Jawa, mengakses penunjuk null akan menghasilkan pengecualian yang disebut nullpointerexception.
Apa itu Array?
Ditunjukkan dalam Rajah 1, adalah sekeping kod yang biasanya digunakan untuk mengisytiharkan dan memberikan nilai kepada array. Rajah 2 menggambarkan bagaimana array kelihatan seperti dalam ingatan.
nilai int [5]; nilai [0] = 100; nilai [1] = 101; nilai [2] = 102; nilai [3] = 103; nilai [4] = 104; |
Rajah 1: Kod untuk mengisytiharkan dan menyerahkan nilai kepada array
100 | 101 | 102 | 103 | 104 |
Indeks: 0 | 1 | 2 | 3 | 4 |
Rajah 2: Arahan disimpan dalam ingatan
Kod di atas mentakrifkan array yang boleh menyimpan 5 bilangan bulat dan mereka diakses menggunakan indeks 0 hingga 4. Satu harta penting dalam array ialah, keseluruhan array diperuntukkan sebagai satu blok memori dan setiap elemen mendapat ruang sendiri dalam array. Setelah array ditakrifkan, saiznya tetap. Oleh itu, jika anda tidak pasti mengenai saiz array pada masa penyusunan, anda perlu menentukan array yang cukup besar untuk berada di sisi yang selamat. Tetapi, kebanyakan masa, kita sebenarnya akan menggunakan kurang bilangan elemen daripada yang telah kita peruntukkan. Oleh itu, sejumlah besar memori sebenarnya sia -sia. Sebaliknya jika "array cukup besar" sebenarnya tidak cukup besar, program itu akan terhempas.
Apakah perbezaan antara petunjuk dan tatasusunan?
Penunjuk adalah jenis data yang menyimpan alamat lokasi memori di mana beberapa data disimpan, sementara tatasusunan adalah struktur data yang paling biasa digunakan untuk menyimpan koleksi unsur. Dalam bahasa pengaturcaraan C, pengindeksan array dilakukan menggunakan aritmetik penunjuk (i.e. Unsur ith array x akan bersamaan dengan *(x+i)). Oleh itu di C, set petunjuk yang menunjuk kepada satu set lokasi memori yang berturut -turut, boleh dianggap sebagai array. Selanjutnya, terdapat perbezaan bagaimana pengendali saiz beroperasi pada petunjuk dan tatasusunan. Apabila digunakan pada array, pengendali sizeof akan mengembalikan keseluruhan saiz array, sedangkan apabila diterapkan pada penunjuk, ia akan mengembalikan hanya saiz penunjuk.