[]
Basit Bir C++ Sorusu
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
int main ()
{
int sayi, a, n=0, sayac=0;
printf ("Uretilcek sayi adetini giriniz:\n");
scanf ("%d",&sayi);
srand (time(0));
for (n=0;n<sayi;++n)
{
a=rand();
if (a%3==0)
{
sayac++;
}
printf ("%d ",a);
}
printf ("Bu sayilarin %d'si 3 ile tam bolunur",sayac);
getch ();
return 0;
}
şimdi burada forun içinde ++n ya da n++ kullanmamın bir farkı olmuyor? Peki olayı nedir?
#include <conio.h>
#include <time.h>
#include <stdlib.h>
int main ()
{
int sayi, a, n=0, sayac=0;
printf ("Uretilcek sayi adetini giriniz:\n");
scanf ("%d",&sayi);
srand (time(0));
for (n=0;n<sayi;++n)
{
a=rand();
if (a%3==0)
{
sayac++;
}
printf ("%d ",a);
}
printf ("Bu sayilarin %d'si 3 ile tam bolunur",sayac);
getch ();
return 0;
}
şimdi burada forun içinde ++n ya da n++ kullanmamın bir farkı olmuyor? Peki olayı nedir?
++n önce arttırıp sonra kullanır.
- eksi sozlukte eksiyen adam (22.01.14 16:26:41)
Burada fark yok. Başka bir değişkene atanmıyorsa daha doğrusu bu işlem o satırda doğrudan kullanılmayacaksa önce-sonra fark etmiyor diye hatırlıyorum.
Performans farkı da göz ardı edilebilecek boyuttadır büyük ihtimalle.
Performans farkı da göz ardı edilebilecek boyuttadır büyük ihtimalle.
- nickini vermek istemeyen uye (22.01.14 16:37:04)
biraz tartışma konusu o kısım aslında derleyiciden derleyiciye değişiyor diyolar birazdan yazacağım şeye. Ancak özet geçecek olursak ++n, n++'ya göre daha hızlı çalışır.
++i'yi hesaplamak için sistem i'nin değerine 1 ekleyip onu döndürüyor.
i++'da ise öncelikle sistem i'nin bir kopyasını oluşturuyor, orjinal değeri bir artırıyor, kopyayı döndürüyor.
Modern işlemci ve derleyicilerde büyük bir problem yaşamazsın yani.
++i'yi hesaplamak için sistem i'nin değerine 1 ekleyip onu döndürüyor.
i++'da ise öncelikle sistem i'nin bir kopyasını oluşturuyor, orjinal değeri bir artırıyor, kopyayı döndürüyor.
Modern işlemci ve derleyicilerde büyük bir problem yaşamazsın yani.
- rastocasdelay (22.01.14 16:53:22)
1