คำถามติดแท็ก operators

ผู้ประกอบการเป็นสัญลักษณ์ที่เกิดขึ้นในเกือบทุกภาษาการเขียนโปรแกรมและการเข้ารหัสสำหรับการคำนวณและการเปรียบเทียบข้อมูล


11
x + = เร็วกว่า x = x + a หรือไม่?
ฉันกำลังอ่าน "The C ++ Programming Language" ของ Stroustrup ซึ่งเขาบอกว่าจากสองวิธีในการเพิ่มบางสิ่งลงในตัวแปร x = x + a; และ x += a; เขาชอบ+=เพราะมันน่าจะดีกว่า ฉันคิดว่าเขาหมายความว่ามันทำงานได้เร็วขึ้นด้วย แต่มันจริงเหรอ? ถ้ามันขึ้นอยู่กับคอมไพเลอร์และสิ่งอื่น ๆ ฉันจะตรวจสอบได้อย่างไร?

3
เหตุใด“ ++ i ++” จึงไม่ถูกต้องในขณะที่ (++ i) ++ นั้นถูกต้อง?
ลองพิจารณารหัสต่อไปนี้: int main() { int i = 2; int b = ++i++; return 3; } มันรวบรวมด้วยต่อไปนี้มีข้อผิดพลาด: <source>: In function 'int main()': <source>:3:16: error: lvalue required as increment operand 3 | int b = ++i++; | ^~ มันฟังดูยุติธรรมสำหรับฉัน การเพิ่มขึ้นของ Postfix มีลำดับความสำคัญสูงกว่าการเพิ่มคำนำหน้าดังนั้นจึงมีการแยกวิเคราะห์รหัสint b = ++(i++);และiเป็น rvalue ดังนั้นข้อผิดพลาด ลองพิจารณาตัวแปรนี้ด้วยวงเล็บเพื่อแทนที่ลำดับความสำคัญเริ่มต้น: int main() { int …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.