Virgül operatörü C ++ ile nasıl çalışır?
Örneğin, eğer:
a = b, c;
Bir sonuç b veya c'ye eşit mi?
(Evet, bunun test edilmesi kolay olduğunu biliyorum - birisinin cevabı hızlı bir şekilde bulması için burada belgelemek.)
Güncelleme: Bu soru virgül operatörünü kullanırken bir nüans ortaya koydu. Sadece bunu belgelemek için:
a = b, c; // a is set to the value of b!
a = (b, c); // a is set to the value of c!
Bu soru aslında bir kod yazım hatası esinlenerek. Amaçlanan
a = b;
c = d;
Dönüştü
a = b, // <- Note comma typo!
c = d;
a = (b, c);
.
a = b, c = d;
aslında amaçlananla aynı performansı gösterir a = b; c = d;
mi?
b
ve d
işlev kullanımı (ve değiştirme) değerlendirmeleri genel bir durumu olan, uygulama sırası kadar tanımlanmamıştır C++17
.