Merhaba, tekrar hoş geldiniz. Senin için başka bir meydan okuma.
Yine, işaretçiler üzerinde olacak. Bu yarışmada öğrenmenize yardımcı olmak
istediğim şey, referansla geçiş kavramıdır.
Yani c, değerle aktarılan her şeyi yapıyor olsa da, işaretçileri
kullandığınızda aslında bir adresin kopyasını oluşturuyor, yani referansla
geçişi taklit ediyor.
Referansla geçişin en büyük avantajı, bir fonksiyonun içinde bir
işaretçinin değerini veya değişkenini değiştirdiğinizde,
değişikliğin fonksiyonun dışına yansıdığını göreceksiniz.
Böylece global değişkenleri çok fazla kullanmak
zorunda kalmayız ve referansla geçişi taklit eden bir işaretçi olarak
bir fonksiyona veri aktarabilmek büyük bir avantajdır.
Bu yarışmada, referansla geçişi ve bunu yapmak için işaretçileri nasıl kullanacağınızı anladığınızı
test eden bir program yazacaksınız.
Sizden bir sayının karesini alan bir fonksiyon yazmanızı istiyorum.
Fonksiyonun uygulanması oldukça basit olacaktır.
Sadece girdiğiniz numaranın karesini alacak.
Bu yüzden fonksiyon int pointer içinde bir parametre olarak tanımlanmalıdır.
İşlev bildiriminizde, bir işaretçi olan bir int yıldız alır.
Ve sonra işlev uygulamanızın içinde, tek yapmanız gereken
işaretçinin değerini referans dışı bırakmak ve kendisiyle
çarpmak olacaktır.
Bu fonksiyondan herhangi bir veri döndürmeniz gerekmez.
Sadece referansla aktarma veya işaretçi aktarma kavramını
anlamanızı sağlamak istiyorum.
Bu programın yapması gereken son şey, değişken değerini,
yani işleve aktardığınız işaretçinin değerini yazdırmaktır.
Dolayısıyla, içeri aktarmak için bir işaretçi oluşturmanıza bile gerek yoktur.
Normal bir çevre veri türü olan tamsayı float kullanabilirsiniz.
Sadece tamsayı float'ı içeri aktardığınızda,
adres olması gerekir çünkü kare işlevi yalnızca bir işaretçi kabul eder.
Ancak yine burada fark edeceğiniz şey, fonksiyonun dışındaki
değerin veya değişkenin, fonksiyona aktarılanın değişeceğidir
çünkü adresi kullanıyorsunuz ve bu referansla
geçişi taklit edecektir.
Bu konuda iyi şanslar.
Oldukça basit.
Yine, işaretçi sözdiziminin yanı sıra referansla geçiş kavramına
da aşina olmanızı sağlayacaktır. Teşekkür ederim.