Halo dan selamat datang kembali. Kami memiliki tantangan lain untuk Anda.
Dalam tantangan ini, saya ingin Anda mempelajari semua tentang aritmatika pointer.
Ingat, aritmatika pointer adalah konsep yang sangat rapi.
Ini adalah konsep notasi.
Tapi itu benar-benar menggambarkan bagaimana array
terkait dengan pointer. Anda dapat melintasi array dengan sangat mudah
dengan sintaks yang sangat sederhana yang mengurangi baris kode Anda dan itu adalah
konsep yang sangat rapi.
Jadi, Anda akan mempelajari semua tentang aritmatika pointer.
Kita juga akan belajar lebih banyak tentang pengubah konstan.
Jadi dalam tantangan ini, saya ingin Anda menulis
sebuah program yang menguji pemahaman Anda tentang aritmatika pointer dan pengubah const.
Kami telah belajar tentang kedua konsep ini di kuliah sebelumnya.
Jadi saya ingin Anda menulis fungsi yang menghitung panjang string.
Persyaratannya adalah fungsi harus mengambil sebagai parameter pointer char konstan.
Penunjuk char konstan berarti Anda tidak dapat mengubah nilai dari apa yang
ditunjuk oleh penunjuk, dan Anda
tidak akan melakukannya dengan panjangnya.
Fungsi hanya dapat menentukan panjang string menggunakan aritmatika pointer.
Saya tidak ingin Anda menggunakan fungsi panjang str. Saya ingin Anda menggunakan aritmatika pointer.
Dan cara saya membayangkan fungsi ini
diimplementasikan adalah Anda akan mendapatkan alamat akhir pointer.
Itu akan menjadi panjang pointer pada dasarnya.
Tetapi cara Anda bisa mendapatkan alamat string terakhir dan penunjuknya adalah Anda bisa
menulis loop sementara.
Perulangan while bisa sampai ke karakter terminator nol.
Atau karakter terminator nol, ingat, yang
direpresentasikan sebagai int.
Jadi terminator nol sebenarnya adalah nol. Jadi Anda bisa menulis
loop sementara dan semua loop sementara yang harus disertakan
dalam kondisinya adalah mereferensikan pointer.
Karena jika nilai pointer referensi d adalah nol, lompat keluar dari loop
dan itu akan menjadi terminator nol.
Jadi saya ingin Anda membaca
seluruh pointer.
Dan saat Anda
melewatinya, terus tambahkan penunjuk itu.
Jadi sekarang Anda memiliki pointer yang menunjuk ke ujung string.
Kemudian untuk benar-benar menghitung panjangnya, yang harus Anda
lakukan hanyalah minus dua pointer.
Pointer yang dilewatkan di mana merupakan awal dari
string dan kemudian pointer
yang Anda buat dalam fungsi yang menunjuk ke akhir string.
Jika Anda dikurangi akhir penunjuk string dari awal
titik string, Anda akan memiliki panjang string.
Jadi, Anda akan melakukan aritmatika pointer dengan menaikkan
pointer satu per satu untuk sampai ke alamat akhir dan kemudian
Anda akan menggunakan aritmatika titik untuk mengurangi setiap pointer.
Ini benar-benar mungkin cara paling valid untuk menggunakan
aritmatika titik untuk pengurangan. Anda biasanya tidak menambahkan dua
pointer karena mengapa Anda menambahkan dua alamat.
Anda dapat mengurangi dua alamat untuk mengetahui seberapa jauh dua elemen
dalam array, itu
masuk akal, tetapi menambahkan tidak. Jadi hanya untuk mengulangi, fungsi
hanya dapat menentukan panjang string menggunakan aritmatika titik.
Buat pointer lokal di fungsi
Anda, tingkatkan pointer itu setiap kali untuk sampai ke akhir
sampai Anda melihat terminator nol, loop while sederhana.
Dan kemudian setelah Anda memiliki alamat akhir, Anda sudah
memiliki alamat awal, kurangi dua pointer yang akan memberi Anda panjangnya.
Anda harus mengembalikan panjang itu sebagai int dari fungsi.
Dan kemudian Anda bisa mencetak panjang sebenarnya itu sendiri.
Jadi tugas ini membuat Anda terbiasa dengan aritmatika titik
dan juga cara menggunakan pengubah konstanta karena Anda tidak ingin mengubah nilai
sebenarnya yang ditunjuknya dan juga mengurangi
dua pointer dan juga menggunakan loop while di mana Anda
dapat melihat nilai pointer itu sendiri untuk
menentukan karakter null. Semoga berhasil.
Saya akan memberikan solusi di kuliah berikutnya. Terima kasih.