• 14-11-2023, 10:57:36
    #1
    Arkadaşlar merhaba. Aşağıdaki kodun ekran çıktısı
    6,30,160 oluyor.

    Soru çözüldü teşekkürler.
  • 14-11-2023, 11:05:15
    #2
    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.
  • 14-11-2023, 11:11:07
    #3
    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.