*

şükela:  tümü | bugün
  • (bkz: ref)
  • c için pass by reference dendiğinde, fonksiyonlara pointer gönderilmesi anlaşılıyor. aslında pointer gönderilmesi de, bir integer değerinin (adres) pass by value edilmesi değil midir ?
    bu bir muamma mıdır ?
    gerçek bir pass by reference için : (bkz: byref) (bkz: visual basic) (bkz: sevgim kabardı)
  • buyuk veri yapilarinin stack'ten yer ayirip, ayrilan yere kopyalanarak paslanmasina kiyasla cok daha hafiftir zira sadece pointer yollanir. kotu yani cagrilan fonksiyon paslanan parametreyi bozarsa cagiran da bundan etkilenir, bi fena olur. (bkz: bi fena oldum)

    bunlari engellemek icin compile time'da const referanslar kullanilabilse de bunu da ezmek icin yollar mevcuttur. (bkz: const_cast)
  • bugünkü midterm sağ olsun, öğrendiğim üzere pass-by-reference yolu ile yapılan işlemler return statement'ının yaptığı gibi kabul görüyormuş. saçmalığına edeyim; ne alakası var lan: biri return, biri direkt manipülasyon.
  • void hesapla(boy);
    yerine
    void hesapla(&boy);
    kullanmaktır.
  • (bkz: byref)
  • python'da uc bes veri tipi disinda herseyin kendiliginden pointer gibi davranmasinin nedeni. yeni kullanmaya baslayanlar icin tam bir bas agrisi.
  • sanilanin aksine java ve c sharp pass by reference degil pass by value'dur;

    (bkz: pass by value/#59625325)
  • pass by value da, sürekli local bir copy oluşturulur. o yüzden değerler scope içerisinde kalır, yani fonksiyonun icinde o değer vardır. return etmez.

    ancak pass by reference olursa eger, fonksiyon bu degeri değiştirdiğinde, tüm onu gören değerler de değişecektr.
  • sanıldığının aksine her zaman pass by reference, her zaman pass by value'dan hızlı değildir. öğrencilere derste genelde verilen swap(int *a, int *b) örneğini hep saçma bulmuşumdur.

    çünkü native type olan (float double integer)'lar. pass by referenceta daha yavaş çalışırlar. (ölçmek isteyen ölçebilir).

    referans geçişleri görüntü işleme gibi (örneğin opencv mat objesi) büyük yer tutan bloklar üzerinde işlem yapılacaksa büyük hız kazandırır. struct veya class tipinden üretilen objeleri kesinlikle referans ile fonksiyona geçirmeye özen göstermek gerekmekte fakat diğer değişkenlerde hayati bir şey etkilememekte.

    not: bu entry fonksiyon geçişini hız üzerinden yorumlamış olup, embedded system gibi çok az flash memory'e sahip bilgisayarları istisna dışında tutmuştur.