Tam açıklaması şu şekilde, global (dizin veya basit) değişkenler initialization işlemi gerektirmez; yani, otomatikmak 0 değeri atanır. Ancak, lokal/yerel değişkenlerde durum böyle değildir. initialization yapılmalıdır (ilk/başlangıç değeri atama işlemi denebilir). Aksi halde, @yhackup'ın da dediği gibi rastgele değerler alırlar; bu değerler de genellikle değişken isminin temsil ettiği (yani referansını taşıdığı) bellek blokundaki bir değeri alır (daha önceki işlemlerden, ister programlarınızın ister sistemin, sonuçta sadece sizin programlarınız kullanmıyor belleği) veya atanmış bir değer yok ise pointer adresi döndürülür. Örneğinizdeki tüm değişkenler main bloku içinde tanımlandıklarından, main'in yerel değişkenleridir. Bu nedenle de böyle problemler/farklı değerler çıkar.
Global değişkenler, kaynak kodun başında bir yerlerde, komut blokları dışında tanımlanırlar. Örneğin, main ile include satırlarının arasındaki satırlarda olabilir.
Else en üstteki if'in değil onun altındaki if'e ait. Sum 0 olmadığı için de oraya hiç girmez. result'ın çöp değeri yazdırılır. Bu kod her çalıştığında farklı olabilir. Girintiler yanıltabilir.
1 değil mi ? direkt else giriyor sum != 0 olduğu için. görmediğim bişi mi var?
Java'ya benziyor.
C
@alipektas C dili
@alipektas c
C
Doğrudan 0 yazdırır. Parantez olmadığı için result =0 konutu if yapısı altında değil doğrudan fonksiyonun içinde olur.
Arkadaşlar tam anlaşılmadı, şimdi bu dil tam olarak C mi? 😀
result = 32767
her çalıştığında değişiyor 🙂
@nadal sebebini bilen varsa açıklasın lütfen 🙂
@yhackup 🙂 çok teşekkürler. anladım.
@yhackup 1 yazması gerekmiyor mu ama zaten else e gieiyor direkt ve result 1 değerini alıp çıkıyor
@deniz-fidan cevap gelmiş 🙂
Tam açıklaması şu şekilde, global (dizin veya basit) değişkenler initialization işlemi gerektirmez; yani, otomatikmak 0 değeri atanır. Ancak, lokal/yerel değişkenlerde durum böyle değildir. initialization yapılmalıdır (ilk/başlangıç değeri atama işlemi denebilir). Aksi halde, @yhackup'ın da dediği gibi rastgele değerler alırlar; bu değerler de genellikle değişken isminin temsil ettiği (yani referansını taşıdığı) bellek blokundaki bir değeri alır (daha önceki işlemlerden, ister programlarınızın ister sistemin, sonuçta sadece sizin programlarınız kullanmıyor belleği) veya atanmış bir değer yok ise pointer adresi döndürülür. Örneğinizdeki tüm değişkenler main bloku içinde tanımlandıklarından, main'in yerel değişkenleridir. Bu nedenle de böyle problemler/farklı değerler çıkar.
Global değişkenler, kaynak kodun başında bir yerlerde, komut blokları dışında tanımlanırlar. Örneğin, main ile include satırlarının arasındaki satırlarda olabilir.
32765
Else en üstteki if'in değil onun altındaki if'e ait. Sum 0 olmadığı için de oraya hiç girmez. result'ın çöp değeri yazdırılır. Bu kod her çalıştığında farklı olabilir. Girintiler yanıltabilir.
rastgele o anki aldığı değeri atar. else üstteki if’in değil alttaki if’in.
result = 0 yazdırır.
Undefined behaviour. Ikinci ifi gormeden hemen 1 diye atladim ama sonradan fark ettim. Tanimlanmadigi icin "tanimlanamayan davranis" sergiler
1 yazar. sum 0'dan farklı, else ile result'a 1 atanıyor ve arkasından değeri yazdırılıyor.