เครื่องหมายจุลภาคทำงานอย่างไรใน C ++
ตัวอย่างเช่นถ้าฉัน:
a = b, c;
ท้ายที่สุดเท่ากับ b หรือ c หรือไม่?
(ใช่ฉันรู้ว่านี่เป็นเรื่องง่ายที่จะทดสอบ - เพียงแค่บันทึกที่นี่เพื่อให้คนอื่นหาคำตอบได้อย่างรวดเร็ว)
อัปเดต: คำถามนี้มีความแตกต่างเล็กน้อยเมื่อใช้โอเปอเรเตอร์คอมม่า เพียงบันทึกเอกสารนี้:
a = b, c; // a is set to the value of b!
a = (b, c); // a is set to the value of c!
คำถามนี้ได้รับแรงบันดาลใจจากการพิมพ์ผิดในรหัส สิ่งที่ตั้งใจจะเป็น
a = b;
c = d;
กลายเป็น
a = b, // <- Note comma typo!
c = d;
a = (b, c);
ให้คำตอบสำหรับคำถามเกี่ยวกับการที่
a = b, c = d;
จริง ๆ แล้วทำเช่นเดียวกับที่ตั้งใจไว้a = b; c = d;
?
b
และd
มีการประเมินผลการทำงานที่ใช้ (และปรับเปลี่ยน) C++17
รัฐร่วมกันเพื่อดำเนินการที่ไม่ได้กำหนดไว้จนกว่า