İşaretçi ile Değer Değişimi ve Fonksiyon Çağrı Zinciri

SonsuzUs Her şey › Category: Soru › İşaretçi ile Değer Değişimi ve Fonksiyon Çağrı Zinciri
sonsuz Kurucu sordu 1 hafta önce
int foo2(int b) {
    int a = 3; 
    return a * b;
}

int foo(int *a) {
    *a = (*a) + 1;
    return foo2(*a);
}

int main(void) {
    int *a;
    int b = 2;
    a = &b;
    foo(a);
    printf("%d\n", b);
    return 0;
}

Yukarıda verilen C programı çalıştırıldığında printf fonksiyonunun üreteceği konsol çıktısı nedir?

1 Cevap
Burak2210 cevapladı 1 hafta önce

a değişkeni b’nin bellek konumudur. foo fonksiyonunda doğrudan *a 1 arttırıldığı için b’nin değeri 3 olur. Daha sonra çalışan foo2 fonksiyonundan 9 döner ama bu dönen değer hiçbir yere yazılmaz yani programın konsol çıktısı 3 olur.

Cevapla