Nedir bu Pointer? C dilinde pointer
 
#1
user avatar
Hasan
371
Rep Point 4
Offline Hasan yazdı. 04-09-2024, 08:43 AM
1.Nedir bu Pointer?
Evet, Herkese merhabalar Arkadaşlar yeni bir seriye başlıyorum."Nedir bu?" serisine bugün itibariyle başlıyorum.Konumuz "Pointer".Çoğu öğrencinin anlamada zorluk çektiği konunun aslında o kadar zor olmadığını inşaallah anlatmaya çalışacağım .Şimdi "Nedir bu Pointer?"sorusuyla başlayalım.
->Pointer başka bir değişkenin bellekteki adreni işaret eden bir değişkendir.Yani (işaretci,gösterici)diyebiliriz.
->İşaretçi değişken bildiriminin genel biçimi şöyledir = type *var_name; Type burada int,double.. olabilir.
->Önceden tanımladığımız değeri kullanıcıdan almak için scanf() fonksiyonunu kullanıyorduk.Burada kullanıcıdan değer almak için & karakterini kullanıyorduk.Pointerların değerleride bellek adresleri olduğu için * ve & karakterleri birbirinin tümleyeni olarak işlev görürler.

2.Peki işaretçiyi nasıl kullanırız?
1.adım:Bir işaretçi değişkeni tanımlanır.
2.adım:Bir değişkenin adresini bir işaretçiye atarız.
3.adım:Son adımda işaretçi değişkeninde bulunan adresteki değere ulaşırız.

Örnek olarak:

int x = 77; //Burada arkadaşlar int tipinden x değişkenimizi tanımladık.
int *p; //Burada da bir adresi gösterecek olan p pointer değişkenini tanımladık.
*p=&x; //p pointer değişkenine x değişkenin adresi atıyor.

Böylece p pointer'i x'in adresini işaret ediyor , oadrestede 77 değeri vardır.
Buna göre:

p = &x;
*p=x;

atamaları birbirine denk olduğunu görmüş olduk.

Şimdi mini bir program yazalım.

`#include <stdio.h>

int main () {

int gelir= 20; // gelir adlı değişken tanımladık
int *varptr; //varptr adlı değişken tanımladık

varptr= &gelir; //var adresini işaretçi değişkeninde sakladık.Ptr neden kullandığımı sonra aşağıda açıklayacağım.
printf("Address of gelir variable: %x\n", &gelir); //
printf("Address stored in varptr variable: %x\n", varptr); //İşaretçi değişkeninde saklanan adresi bastırdık konsola.
printf("Value of *varptr variable: %d\n", *varptr); //İşaretçi kullanarak değerimize eriştik ve bastırdık.

return 0;
}`
->Pointer bildiriminde,değişken adının sonuna ptr ekledik.Bunu yapmak zorunda değilsiniz.ptr eklemimizin sebebi , kaynak programı okuyan kişi pointer değişkenini kolay algılaması içindir.Size tavsiyem zorunlu olmayan bu işi alışkanlık edinmek yararlıdır.Bazı derleyiciler (*) karakterini veri tipinin sağına konulmasını da kabul eder.

3.NULL Pointer
->Türkçede boş,hiç anlamlarına gelir.NULL,stdio.h kütüphanesinde tanımlı sembolik bir sabittir.Bu sabiti biz bir pointerın atanacak tam bir adresi yoksa , bir işaretçi değişkenine NULL değeri atamak her zaman faydalıdır.Çünkü Pointer çöp(garbage) toplar.Bu yüzden bellekte herhangi bir değer alabilir.Bu da bize istenmeyen sonuç doğurabilir.

4.Pointer Kullanımın Yararları
1.Pointerlar ,doğrudan adreseleri gösterdiği için ,programların yürütme süresi kısalır.
2.Dinamik adres yönetimini sağlar.
3.Arrayler ve veri tabloları üzerinde işlemler daha kolay hale getirir.
4.Pointerlar,bağlı listeler,kuyruklar,yığıtlar(stacks) ve grafikler gibi yapılarda işlem yapmayı kolaylaştırır.
5.Pointerlar,dönüş anahtar sözcüğü kullanmadan kullanıcı tanımlı bir işlevden birden çok değer döndürmenin bir yolunu sağlar.

5.Öneri Pointer Oynatma Listesi
->Arkadaşlar öneri konu videosu olarak Neso Academy kanalının Arrays & Pointers in C oynatma listesini önerebilirim.Pointer için 102. videodan itabaren izleyebilirsiniz.

---->Evet bir konunun daha sonuna geldik.Umarım faydalı olmuştur Smile .Beni sosyal medya hesaplarımda n takip edebilirsiniz.Serinin bir sonraki konusunda beraber olmak üzere hoşçakalın.

  Bkz: Alıntıdır  URL'ye Git


[Resim: dimza.gif]





Konuyu Okuyanlar: 2 Ziyaretçi

 
Hoşgeldiniz...

Hoşgeldin, Ziyaretçi:
Giriş Yap
Kayıt Ol


Yasal Uyarı
Yodofoo.com.TR (YTR), hukuka, yasalara, telif haklarına ve kişilik haklarına saygılı olmayı amaç edinmiştir. Yodofoo.com.TR, 5651 Sayılı İnternet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlara Mücadele Edilmesi Hakkında Kanunda tanımlanan -Yer Sağlayıcı- olarak hizmet vermektedir. İlgili yasaya göre, Yodofoo.com.TR yönetiminin hukuka aykırı içerikleri kontrol etme yükümlülüğü yoktur. Bu sebeple, Yodofoo.com.TR -Uyar ve Kaldır- prensibini benimsemiştir. Telif hakkına konu olan eserlerin yasal olmayan bir biçimde paylaşıldığını ve yasal haklarının çiğnendiğini düşünen hak sahipleri veya meslek birlikleri, yodofoo@gmail.com mail adresinden bize ulaşabilirler. Buraya ulaşan talep ve şikayetler incelenerek ihlal olduğu belirlenen içerikler Yodofoo.com.TR 'den kaldırılacaktır. Ayrıca, mahkemelerden talep gelmesi halinde hukuka aykırı içerik üreten ve hukuka aykırı paylaşımda bulunan üyelerin tespiti için gerekli teknik veriler sağlanacaktır.



Türkçe Çeviri: MyBB, Yazılım: MyBB, © 2002-2024 MyBB Group.
YTR v7.1 theme designed for MyBB