bagbaq adlı üyeden alıntı: mesajı görüntüle
void f(int a, int b, int *c) {
int *t = &b;
a -= 2;
b += 5;
*t += 2;
*c += 100;
}
burda ki fonksiyona 3 tane değişken gönderirken aslında değişkeni değil değişkenin değerini gönderiyoruz, ancak son parameterde değer yerine adres istediği için sizde aşağıda z değişkeninin adresini göndermişsiniz. Fonksiyonda da "a-=2;" yaparken gönderdiğiniz x değişkenini değiştirmiyorsunuz, fonksiyona gönderdiğiniz değeri değiştiriyorsunuz. Ancak *c += 100; burda değişkenin değeri yerine adresini gönderdiğimiz için direk değişkenin adresinden değerini değiştiriyor.
Hocam ben direk değişkeni gönderiyoruz sanıyordum. Değerin değişmemesi bana ilginç geldi.
Teşekkür ederim.