şükela:  tümü | bugün
  • c dilinde bir fonksiyonun return degeri sadece bir tane iken pointer'lar sayesinde bunun bokunu cikartabilir hatta ne return degeri lan diyip fonsiyonu void olarak bile yazmaya goturebilirsiniz bu kadar ilginc bir seydir bu pointer algoritmalar icin.

    basit bir örnegi 2 degiskeni degistiren fonksiyondur, bir ara degisken, 2 de degerlerini degistirmek istediginiz degiskeni ,

    long funk(long a, long b)
    {

    long h; (debug watch'ta h abarti bir deger olarak gozukebilir sifirlamaniza gerek yoktur.)

    h = a;
    a = b;
    b = h;

    return (a veya b);

    }

    bu fonksiyonla hemen degistirir ama degerlik olarak sadece a ya da b'yi dondurebilirsiniz.

    halbuki adreslerini gostererek direk adreslerin icine bir takim degerler yolladiginizda main fonksiyonunda a ve b degismis olarak gozukur. fonksiyon da amacli yazilmis olur.

    yani,

    void funk(long *a, long *b)
    {

    long h;

    h = *a;
    *a = *b;
    *b = h;

    }
  • çoğu zaman vurulmuş olan avı ağzıyla sahibinin ayağının dibine bırakıp avına devam eder bu köpek cinsi. bu sebeple avcılar bu durumu pointer rahatlığı ya da pointer keyfi diye de adlandırırlar.
  • pointer bilgisayar biliminde gerekli bilgiye ait hafıza gözünün bilgisini tutan değişkendir. böylece hafızadan kazanmış oluruz ve hızı da artırdığı söylenegelir.

    bilgisayar bilimini geçtiğimizdeyse ben günlük hayatta da pointer'lar olduğu kanaatindeyim.
    bu bir şarkı olabilir, koku olabilir... sizi ilgili hafıza gözüne götüren pointer'lardır çoğu zaman şarkılar ve kokular. küçücük bir şey, zihninizde geniş bir zamana döndürür sizi. bazen yıllar öncesine, bazen sizin bile unuttuğunuz birine.
  • c dillerinin*, alt seviyeye göz kırptığı başlıktır.

    önce, her ne kadar yeterince anlatılsa da, biz de basit bir analojiyle işaretçi* nedir, kısaca anlatalım;

    diyelim ki yaşlı ve zengin bir yazılımcısınız, ve hizmetçinizden, malikanenizin kütüphanesinden bjarne stroustrup - the c++ programming language adlı kitabı getirmesini istediniz*.

    assembly gibi alt bir dilde, bu isteği yapıyorsanız, kitabın adını değil, adresini söylemeniz gerekir, örneğin "kızım bana 2. raftaki 5. kitabı getir"* gibi.

    ama daha üst bir seviyede, hiç böyle adreslerle uğraşmadan, doğrudan ilgili değişkenin* adını söylemeniz, yani "kızım bana 'the c++ programming language' isimli kitabı getir" demeniz kafidir.

    peki ikisi arasındaki fark nedir? doğrudan adres vererek değişkene ulaşmak daha zor bir uygulama olsa da, daha güçlüdür. örneğin "kızım boşver sen bana 2. rafı komple getir" gibi farklı yaklaşımları uygulayabilirsiniz. ayrıca zavallı hizmetçiye, bir kitabın adını verip tüm kütüphaneyi arattırmaktansa, doğrudan istediğiniz kitabın yerini söyleyerek çok daha hızlı bir hizmet vermesini sağlayabilirsiniz.

    öteki taraftan, adreslerle uğraşmadan doğrudan değişken isimleri ile içerikler erişmek, çok daha pratiktir. biraz performans ve güçten feragat ederek, adreslerden kurtulabilirsiniz. c dillerinin assembly'e göre daha üst seviye olarak tanımlanmasının sebebi budur, hafızaya adreslerle değil, o adreslere verdiğiniz isimlerle erişilir.

    fakat tam bu noktada, c dilleri, size daha temele doğru bir pencere açar; işaretçiler. işaretçi kavramıyla, değişken adları ile uğraşmaktansa, doğrudan adreslerle uğraşabilir, adreslerin verdiği performans ve özgürlüğün tadını doyasıya çıkartabilirsiniz*.
  • http://home.netcom.com/~tjensen/ptr/pointers.htm

    adresinden c'de nedir, nasıl kullanılır vs. hepsini okuyabilirsiniz.
  • ms excel'de indirect(dolaylı) formülü ile aynı işi yapar.
  • konulu videolarda tukurukleri icen cocuk videosundan kurtulmamizi saglayan (bkz: #51043571) alnindan opulesi yazar.