Merhaba, şöyle bir C programı var. Ben çözünce -1 buluyorum ancak Visual Studio 2012 de çıktı 2 çıkıyor. Devcpp da 0 çıkıyor biraz aklım karıştı. Bu programın çıktısı ne olur?

#include <stdio.h>

int main()
{
    int i = 0;
    int dizi[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int number;

    number = dizi[++i+dizi[i++]]-dizi[++i];
    printf("number = %d\\n", number);

    return 0;
}

soruldu: 08 Tem '14, 10:01

H%C3%BCdabin's gravatar image

Hüdabin
26223
cevap kabul oranı: 0%


++i = 1 i++ = 0

number = dizi[1 + dizi[0]]-dizi[1]] -> dizi[1 + 0] - dizi[1] - > dizi[1] - dizi[1] = 0

permanent link

cevaplandı: 08 Tem '14, 10:56

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

3

Neden her derleyici de farklı sonuç veriyor peki?

(08 Tem '14, 11:11) osmanraifgunes osmanraifgunes's gravatar image
1

Derleyiciler yazılırken standartlarını kendileri belirliyor ve işlem sequence'inin microsoft'un gcc ile devcpp arasında bu işlem execution farkı, diğer yandan ++ operatorunun yan etkileri ve burada işlem sequence'indeki execution(işleme) sırasında oluşan istenmeyen durumdur.

Side Effects + Sequence Points : http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V40F_HTML/AQTLTBTE/DOCU_018.HTM

Teknik depth yüksek bir soru. İş arasında bu kadar yazıp, bırakıyorum. Müsait bir zamanda daha detaylı bilgi edinip, cevabı güncellemekte fayda var.

(09 Tem '14, 04:41) Turgay Can Turgay%20Can's gravatar image

kendi kafamdan derlediğimde -1 buldum.

1- dizi[1+1] - dizi[3]

2- dizi[2]-dizi[3]

yani cevap -1 görünüyor gibi.

permanent link

cevaplandı: 09 Tem '14, 02:29

arslanaybars's gravatar image

arslanaybars
566141724
cevap kabul oranı: 29%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×42

Soruldu: 08 Tem '14, 10:01

Görüntüleme: 764 kez

Son güncelleme: 09 Tem '14, 04:41

powered by BitNami OSQA