#include<stdio.h>
void main()
{
int i=10;
printf("%d %d %d\n",a,--a,++a); // output 10 10 10
}
Bu kod nasıl aynı çıktıyı veriyor? Bu artış ve eksiltme işleçlerinin önceliği nedir?Bu printf() işlevi bu değerleri nasıl gösterir?
#include<stdio.h>
void main()
{
int i=10;
printf("%d %d %d\n",a,--a,++a); // output 10 10 10
}
Bu kod nasıl aynı çıktıyı veriyor? Bu artış ve eksiltme işleçlerinin önceliği nedir?Bu printf() işlevi bu değerleri nasıl gösterir?
Size çünkü aynı çıktıyı verir - - bir baskı daha sonra özgün bir değeri ve O (veya 11 ++ a) 9 oldu pek çok dili gibi
C Hevesli değerlendirme aşamasında kullanmak (https://en.wikipedia.org/wiki/Eager_evaluation)
Bu, printf
argümanı printf
işlevinin çağrılmasından önce değerlendirilir. derleyici için
, kodunuz bir ++ ve ++ bir arasındaki fark nedir
#include<stdio.h>
void main()
{
int a=10;
a;
--a;
++a;
printf("%d %d %d\n",a,a,a); // output 10 10 10
}
Yanlış. Değerlendirme sırası belirtilmemiş ve program tanımlanmamış bir davranışa sahiptir. Hiçbir şeye eşdeğer değil. –
benziyor? –
Daha fazlasını açıklayabilir misiniz? –
@VladimirTsykunov ++ a, a değerini artıracaktır ve sonra artırılan değeri döndürecektir. a ++, a değerini artıracaktır ancak orijinal değeri döndürür. – Hoffman