Necati Ergin Hocamın kendi sayfasında bulunan çalışma sorularını ve cevaplarını burada yanıtlamaya çalıştım. Sorulara buradan ulaşabilirsiniz.
Aşağıdaki C programı çalıştırıldığında bu programın çıktısı ne olur?
include <stdio.h>
int main()
{
int a = 38;
int b = 10;
int c = 1;
int e;
e = ++a % b-- >> c;
printf("%d\n", e);
return 0;
}
|
Yanıt:
Operantların işlem önceliklerine göre işlemleri parantez içine alarak işlemi gözümüze daha sade hale getirebiliriz.
e = (((++a) % (b--))) >> c ; Bu adımdan sonra parantezler içine değerleri koyarak sonuca ulaşabiliriz. Fakat burada b-- ve ++a işlemlerine dikkat etmemiz gerekiyor.++, a için ön ektir ve anın değerini etkiler. --, b için son ektir ve işlem esnasında b nin değerini değiştirmez. Bu durumda işlem şu şekilde olur (39 % 10) >> 1; → 9 >>1 → 4 sonucuna ulaşılır.
Hiç yorum yok:
Yorum Gönder
Son Ütücü