Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  Fonksiyonlara gönderilen parametrelerin adres olarak kullanıdığı, fonksiyonlara parametre aktarım şeklidir.Bu şekilde yapılan değişikler gelen parametre üzerinde gorulur.Diziler bu şekilde fonksiyonlara gönderilir.
Ayrıca Bkz. pass by value
mennan
14 Haziran 2005 21:11 ~ 21 Temmuz 2005 00:35
2.  ayrica bkz: value type, reference type
fizikci
14 Haziran 2005 21:14
3.  Bkz. C# için parametre tipleri
mennan
10 Ocak 2006 01:50
4.  "call by reference" olarak da adlandırılan parametre aktarma şekli.
Java'da bu asla kullanılmaz. Her zaman pass by value kullanılır.
sertw
13 Ocak 2006 23:07
5.  C++'da referans olarak parametre aktarmak için & işareti kullanılır. Bir parametre tipinin sonunda & işareti varsa bu, parametrenin referans olarak aktarılacağı anlamına gelir.
#include <iostream>
using namespace std;

void funcByValue(int sayi)
{
   sayi = 5;
}
void funcByRef(int& sayi)
{
   sayi = 5;
}

int main ()
{
    int sayi = 1;
   
    funcByValue(sayi);
    cout << sayi << endl;  // 1 yazar, fonksiyondan sonra sayi'nin değeri değişmez.
   
    funcByRef(sayi);
    cout << sayi << endl;  // 5 yazar, değer değişmiştir.
}

C'de genellikle kullanılan yöntem parametrenin pointer tipinden olması ve fonksiyon çağrılırken değişkenin adresinin gönderilmesidir. Şöyle;
#include <stdio.h>

void func(int *sayi)
{
   *sayi = 5;
}
int main()
{
   int sayi = 1;
   printf("%d", sayi); // 1 yazar.

   func(&sayi);        // & operatörü ile fonksiyona adres geçiriyoruz
   printf("%d", sayi); // 5 yazar.
}

Java'da olmayan bu teknik, C#'da ref anahtar kelimesi ile karşımıza çıkar. Ref kullanımı şöyledir:
using System;

class Deneme
{
   void funcByValue(int sayi)
   {
       sayi = 5;
   }
   void funcByRef(ref int sayi)  // ref kullanımına dikkat.
   {
       sayi = 5;
   }

   public static void Main()
   {
       Deneme d = new Deneme();

       int sayi = 1;
   
       d.funcByValue(sayi);
       Console.WriteLine(sayi);  // 1 yazar, fonksiyondan sonra sayi'nin değeri değişmez.
   
       d.funcByRef(sayi);
       Console.WriteLine(sayi);  // 5 yazar, ref'den dolayı değer değişmiştir.
   }
}

fizikci
21 Şubat 2006 17:01
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
» & » parametre » Memory » C » Fonksiyon

© 2005, Bilişim Kulübü. (1109 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen