Aşağıdaki C programı çalıştırıldığında bu programın çıktısı ne olur?
#include <stdio.h> void func(int x) { ++x; printf("%d", x); } int main() { int x = 10; func(++x); func(x++); printf("%d", x); return 0; }
Yanıt:
++x ve x++ çalışma farklılığına deyinerek soruyu çözebiliriz. ++x işleminde x in değeri bulunduğu satırda arttırılarak işleme katılır. X++ işleminde ise x değişkeni kendi değerinde bulunduğu satırda işlenir fakat bir sonraki işlendiği satırda değeri bir artmış olarak işlenir.
int x = 10;
func(++x); → x 11 olarak değer alır ve fonksiyona 11 değeri gönderilir.
func(x++); → x değeri bu satırsa 11 dir. Fakat bir sonraki işlemde x değeri bir artmış olarak karşımıza çıkacaktır. Sonuç olarak fonksiyona 11 değeri gönderilir.
printf("%d", x); → x++ işlemi sonrasında x değeri burada 12 olarak işlenir.
func(++x); → x 11 olarak değer alır ve fonksiyona 11 değeri gönderilir.
func(x++); → x değeri bu satırsa 11 dir. Fakat bir sonraki işlemde x değeri bir artmış olarak karşımıza çıkacaktır. Sonuç olarak fonksiyona 11 değeri gönderilir.
printf("%d", x); → x++ işlemi sonrasında x değeri burada 12 olarak işlenir.
Sonuç 121212 olur.
Hiç yorum yok:
Yorum Gönder
Son Ütücü