Lütfen bana neden farklı davrandığını açıklayın.Çıktı neden farklı?
Bu, çıktıyı stackoverflow8 olarak verir. Daha sonra parantez uzaklaştırmak, ancak:
p = printf("stack"),printf("overflow");
stackoverflow5
Lütfen bana neden farklı davrandığını açıklayın.Çıktı neden farklı?
Bu, çıktıyı stackoverflow8 olarak verir. Daha sonra parantez uzaklaştırmak, ancak:
p = printf("stack"),printf("overflow");
stackoverflow5
olarak çıktı verir madde), böylece parantezleri kaldırırsanız, ödev ilk önce gerçekleşir ve ikinci ifadenin sonucu atılır. Yani ... Üçüncü çizgisi yani b
yeniden deklarasyon olarak yorumlanır gibi bir hata neden olacağını
int a = 10, b = 20;
int x = (a,b); // x == 20
int y = a,b; // y == 10
// equivalent (in terms of assignment) to
//int y = a;
Not:
int y = a;
int b;
İlk başta bu cevapsız, ama yapar duygusu. a
ve b
'un ilk bildirimlerinden farklı değildir ve bu durumda virgül bir operatör değildir, bir ayırıcıdır.
int y = a, b; int y = a'ya eşdeğerdir; ve int b; – h4ck3d
Anladım. Teşekkürler. – h4ck3d
@EdS. Kodunuzu gcc ile denedim ve 3. cümlesi "b '" ve "b'" nin önceki tanımlaması hatası veriyor. – abelenky