Halo, dan selamat datang kembali.
Kami berada di bagian baru. Bagian ini diberi nama pointer.
Ini mungkin bagian yang paling penting dari kursus.
Ini juga mungkin bagian yang paling sulit dari kursus. Konsep pointer dan
c adalah konsep yang rumit dan rumit.
Tapi kita akan melewatinya dengan sangat lambat.
Kami akan memberikan banyak kuliah dan melangkah selangkah demi selangkah.
Kami akan mulai dari level tertinggi dan semakin detail.
Anda harus memahami petunjuk jika Anda ingin memanfaatkan sepenuhnya
bahasa c. Jadi itu sangat penting.
Jadi mari kita mulai dari atas dan berbicara tentang konsep tipuan ini, yang
pada dasarnya adalah konsep yang sama dengan pointer.
Jadi pointer sangat mirip dengan konsep tipuan.
Anda menggunakan tipuan dalam kehidupan sehari-hari Anda. Jadi misalnya, jika saya
menjelaskan apa arti tipuan, itu akan seperti jika
Anda harus membeli sesuatu yang baru, produk baru di perusahaan Anda.
Jadi misalnya, Anda harus membeli kartrid tinta baru untuk printer Anda.
Jika Anda bekerja di sebuah perusahaan besar, apa yang mungkin
Anda lakukan adalah Anda harus melalui departemen
tertentu untuk membeli pembelian baru. Jadi Anda mungkin akan pergi ke departemen pembelian.
Anda mungkin akan menelepon seseorang untuk membeli
dan meminta mereka memesan kartrid baru untuk Anda.
Itu akan menjadi tugas mereka untuk kemudian menemukan
toko lokal yang menyediakan barang sebenarnya yang ingin Anda pesan.
Dan apa artinya ini adalah Anda tidak pergi dan memesan barang itu sendiri secara langsung.
Anda meminta seseorang untuk melakukannya untuk Anda.
Dan kemudian melalui keahlian dan pengetahuan mereka tentang siapa
yang memiliki produk itu dalam inventaris, mereka mengembalikannya
kepada Anda.
Jadi ini adalah tingkat tipuan tentang Anda. Anda tidak pergi ke depan
dan hanya pergi ke toko dan membelinya. Anda pergi ke departemen pembelian, departemen orang
tersebut memiliki pengetahuan bahwa departemen itu pergi dan melakukan segalanya untuk Anda.
Ini adalah konsep yang sama dari pointer dalam pemrograman.
Dalam bahasa pemrograman, tipuan adalah kemampuan untuk mereferensikan sesuatu menggunakan nama
atau referensi atau wadah alih-alih nilai itu sendiri.
Kami menggunakan bentuk interaksi dengan menggunakan nama variabel.
Kami tidak menggunakan alamat memori untuk mengakses data.
Kami menggunakan nama variabel.
Bentuk tipuan yang paling umum adalah tindakan memanipulasi nilai
melalui alamat memorinya.
Jadi selain deskripsi tipuan
yang sangat kecil menggunakan nama variabel untuk mewakili alamat memori, Anda
juga memanipulasi nilai melalui alamat memorinya menggunakan alamat itu sendiri.
alamat itu sendiri.
Jadi pointer menyediakan sarana tidak langsung untuk mengakses nilai item data tertentu.
Ini adalah variabel yang nilainya adalah alamat memori,
dan ini penting untuk dipahami.
Kami telah mempelajari variabel sampai saat ini yang
berisi jenis data tertentu,
angka, karakter, ganda, mengapung dengan bilangan rasional.
Sekarang kita akan memiliki variabel
yang tidak menyimpan jenis data ini.
Jenis penyimpanan data adalah alamat memori.
Alamat memori akan direpresentasikan sebagai bilangan bulat, angka
heksadesimal, tetapi masih
akan menjadi alamat memori.
Jadi itu akan menjadi nilai
alamat dan lokasi memori lainnya jika itu adalah variabel yang ada
atau lokasi baru yang Anda alokasikan secara dinamis.
Jadi seperti halnya alasan mengapa masuk akal untuk pergi
melalui departemen pembelian untuk memesan kartrid
baru, Anda tidak perlu tahu dari toko mana kartrid itu dipesan misalnya.
Ada juga alasan bagus mengapa masuk akal untuk menggunakan
pointer dan c Untuk menggunakan variabel-variabel ini yang mewakili sebuah alamat, sebuah alamat memori.
Kami berbicara tentang alamat memori di awal kursus.
Dan bagaimana setiap kali Anda menjalankan program dan Anda membuat variabel yang disimpan dalam memori.
Dan memori itu memiliki alamat tertentu. Anda harus mengetahui alamat untuk mendapatkan kembali
data tersebut, sama seperti Anda perlu mengetahui alamat rumah jika Anda akan berkendara ke suatu tempat
atau alamat suatu lokasi.
Jadi menggunakan pointer dalam program Anda adalah salah satu alat paling kuat yang tersedia dalam bahasa c.
Itulah mengapa penting untuk dipahami.
Setiap program di c yang substantif akan menggunakan pointer.
Jadi, Anda harus memahami konsep ini.
Dan untuk programmer di luar sana yang telah memprogram bahasa
yang lebih modern seperti java atau c sharp, Anda
tidak perlu khawatir tentang ini
karena semua alokasi memori dan tidak ada
konsep pointer yang sebenarnya.
Meskipun di bawah
tenda, Java menggunakan pointer karena mereka memiliki salinan referensi.
Ini adalah jenis konsep yang sama. Tetapi di c, Anda
secara eksplisit memiliki variabel yang mewakili alamat.
Pointer juga merupakan salah satu konsep bahasa c yang paling membingungkan.
Mereka cenderung disalahgunakan
mereka cenderung tidak sepenuhnya dipahami, terutama oleh programmer baru.
Jadi, penting bagi Anda untuk memahami konsep ini di awal
dan memiliki gagasan yang jelas tentang apa yang
terjadi saat Anda masuk ke konsep pointer yang semakin maju dan semakin maju.
Jadi jika Anda tidak memahami ini
di awal, belajar, belajar belajar, berlatih menulis kode dengan petunjuk.
Kompiler harus mengetahui jenis data yang disimpan
dalam variabel yang ditunjuknya. Jadi itu seperti variabel biasa
dan Anda harus menentukan tipe data saat Anda membuat pointer.
Alasan compiler perlu tahu ini adalah alasan yang sama untuk variabel,
perlu tahu berapa banyak data yang dialokasikan bahkan jika Anda menunjuk ke beberapa data.
Setiap pointer akan dikaitkan dengan tipe variabel tertentu.
Ini hanya dapat digunakan untuk menunjuk ke variabel tipe
itu, kami akan memberikan contoh ini ketika kita berbicara tentang mendefinisikan sebuah pointer.
Jadi misalnya pointer bertipe pointer
ke sana hanya bisa menunjuk ke variabel bertipe int.
Sekali lagi, variabel
memiliki nilai alamat, itu adalah pointer.
Alamat itu mungkin berisi nilai di suatu tempat di memori.
Pointer bertipe pointer ke float hanya dapat menunjuk ke variabel bertipe float.
Jadi, inilah ide
ilustratif yang memberi Anda konsep pointer.
Jangan khawatir tentang sintaks di sini.
Kami telah membahasnya secara singkat di kuliah sebelumnya ampersand ini dan tanda bintang ini Anda
tidak perlu khawatir tentang itu. Apa yang saya ingin
Anda perhatikan di sini adalah bagaimana pointer memiliki alamat, dan alamat
itu dapat berisi nilai tetapi berada di tempat lain di memori.
Jadi dalam contoh ini, kami membuat angka biasa, kami
telah membuat jutaan kali, lalu Anda melihat sintaks ini dengan tanda bintang yang
menandakan bahwa itu adalah penunjuk. Kami akan membahasnya secara detail.
Anda juga melihat ampersand, yang menandakan bahwa itu adalah sebuah alamat.
Jadi dalam contoh ini ketika kita membuat pointer bertipe int p number
ini, kita menetapkan sebuah alamat. Karena ingat, pointer hanya bisa menyimpan alamat.
Dan bagaimana ini sebenarnya diletakkan di memori
adalah Anda memiliki nomor
nama variabel, dan nomor memiliki nilai 99.
Nomor juga memiliki alamat di memori.
Alamat itu di memori adalah nilai pointer.
Jadi angka p adalah penunjuk yang menunjuk ke alamat 1008.
1008 memiliki nilai 99, berisi nomor
variabel juga.
Jadi ini benar-benar apa yang kita maksud. Jika ini tidak jelas, Anda perlu melihat
ini selama satu jam dan pastikan Anda memahaminya.
Sekali lagi, intinya adalah pointer memiliki nilai ke
alamat, itulah yang disimpannya.
Dan kemudian Anda benar-benar dapat mengakses nilai di alamat itu menggunakan sintaks tertentu.
Jadi mengapa menggunakan pointer, mengapa bahkan membahas konsep ini, mengapa kita tidak
bisa menggunakan tipe data yang
ada yang kita gunakan dan menggunakan array karakter ketika kita ingin menggunakan string.
Nah, mengakses data hanya dengan variabel sangat terbatas.
Dengan pointer, Anda dapat mengakses lokasi mana pun, Anda dapat memperlakukan posisi memori
apa pun sebagai variabel misalnya dan kemudian Anda dapat melakukan aritmatika
dengan pointer juga yang membuatnya lebih mudah.
Pointer di c mempermudah penggunaan array dan
string, dan kita akan membahasnya juga, itulah keuntungan lain menggunakan pointer.
Pointer memungkinkan Anda untuk merujuk ke ruang dan memori yang sama dengan beberapa lokasi.
Jadi ini artinya Anda dapat memperbarui memori di
satu lokasi dan kemudian perubahannya dapat dilihat dari lokasi lain di program Anda.
Ini semacam cara menggunakan data global tetapi masih memiliki fungsi di dalam yang dienkapsulasi.
Anda juga dapat menghemat banyak ruang memori dengan berbagi komponen dalam
struktur data Anda.
Jadi ingat, ketika c ditemukan, c ditemukan pada tahun 70-an.
Ide dari c adalah menjadi sangat efisien dan menjadi level rendah.
Ide mengakses memori secara langsung melalui pointer sangat
efisien, dan
juga sangat cepat.
Pointer juga memungkinkan fungsi untuk mengubah data yang diteruskan
sebagai variabel. Ini lulus dengan referensi. Kita akan mengadakan kuliah tentang ini.
Di sinilah Anda dapat meneruskan argumen ke suatu fungsi dengan pointer Anda.
Dan kemudian di dalam fungsi, ketika Anda mengubah data
itu, perubahan itu akan tercermin di luar fungsi itu.
Jadi kita tidak lagi harus menggunakan data global.
Kita dapat menggunakan data di dalam suatu fungsi, meneruskan
data itu sebagai penunjuk dan kemudian data di luar
fungsi itu akan dialokasikan. Jadi tidak ada kerugian menggunakan
variabel global di mana semuanya digabungkan dengan erat, Anda dapat
membatasi itu hanya pada data yang perlu hanya fungsi yang perlu mengetahui data itu.
Seperti yang saya sebutkan, itu juga dapat digunakan untuk mengoptimalkan program agar berjalan
lebih cepat dan menggunakan lebih sedikit memori
daripada yang seharusnya, yang merupakan
konsep penting, terutama dalam program waktu nyata yang disematkan.
Pointer juga memungkinkan kita untuk mendapatkan beberapa nilai dari suatu fungsi.
Kami telah berbicara tentang fungsi tentang bagaimana Anda dapat melewatkan fungsi data.
Kami juga telah berbicara tentang bagaimana Anda dapat mengembalikan data.
Kami tahu bahwa saat ini Anda hanya dapat mengembalikan satu nilai dari suatu fungsi.
Tetapi jika Anda menggunakan pointer, Anda sebenarnya dapat mengembalikan beberapa nilai dari suatu fungsi.
Dan kita akan berbicara tentang itu. Itu keuntungan besar.
Kami juga akan berbicara tentang alokasi memori dinamis.
Saat ini ketika kita membuat memori untuk sebuah program, itu dilakukan
secara implisit oleh kompiler ketika Anda mendeklarasikan sebuah variabel.
Jika Anda mendeklarasikan variabel int, itu secara otomatis membuat 4 byte untuk variabel itu misalnya.
Saat Anda menggunakan array dan Anda menentukan ukuran
array, ukuran tersebut dialokasikan pada waktu kompilasi.
Jadi jika Anda mencoba untuk menyimpan lebih banyak data dari itu, Anda kacau,
program Anda tidak akan bekerja.
Tetapi jika Anda memiliki kemampuan untuk benar-benar
membuat memori sebanyak yang Anda butuhkan saat runtime, itu
akan sangat besar. Dan pointer memungkinkan Anda melakukan ini.
Mereka memungkinkan Anda untuk membuat memori pada saat runtime dinamis, alokasi memori.
Kita akan membicarakan semua ini juga.
Pointer memungkinkan kita untuk merancang dan mengembangkan struktur data yang lebih kompleks.
Dan struktur data adalah sesuatu yang menyimpan data.
Contoh struktur data adalah stack a cue atau linked list.
Dan kita bisa membuatnya lebih mudah menggunakan pointer.
Pointer menyediakan akses memori langsung, sekali lagi, cepat dan efisien.
Jadi pointer akan menjadi konsep besar. Kita akan memiliki banyak kuliah tentang pointer.
Saya ingin kalian fokus, dan saya ingin kalian memperhatikan ketika saya berbicara tentang semua
konsep ini karena itu penting dan vital untuk memahami bahasa pemrograman c.
Jadi semoga berhasil, dan mari kita mulai. Terima kasih.