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
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