Tôi luôn tự hỏi tại sao một thao tác đơn giản và cơ bản như hoán đổi nội dung của hai biến này lại không được tích hợp cho nhiều ngôn ngữ.Tại sao toán tử trao đổi/trao đổi không tồn tại trong các ngôn ngữ mệnh lệnh hoặc OO như C/C++/C#/Java ...?
Đây là một trong những bài tập lập trình cơ bản nhất trong các lớp khoa học máy tính; nó được sử dụng nhiều trong nhiều thuật toán (ví dụ: phân loại); mỗi bây giờ và sau đó người ta cần nó và người ta phải sử dụng một biến tạm thời hoặc sử dụng một khuôn mẫu/chức năng chung.
Nó thậm chí là một hướng dẫn máy cơ bản trên nhiều bộ vi xử lý, để lược đồ tiêu chuẩn với một biến tạm thời sẽ được tối ưu hóa.
Nhiều toán tử ít rõ ràng hơn đã được tạo, như toán tử gán (ví dụ: + =, có thể được tạo để phản ánh hướng dẫn tích lũy máy, ví dụ: thêm rìu, bx) hoặc ?? toán tử trong C#.
Vì vậy, lý do là gì? Hay nó thực sự tồn tại, và tôi luôn luôn bỏ lỡ nó?
Câu hỏi hay. Tôi cũng đã tự hỏi về điều này, mặc dù các câu trả lời có ý nghĩa. – pro3carp3
Câu lệnh SWAP * có * tồn tại trong QBasic. – dan04
Thú vị hơn macro 'hoán đổi hai biến' sẽ là một hành vi giống như toán tử dấu phẩy, nhưng giá trị của nó là toán hạng đầu tiên. Hãy tưởng tượng các nhà điều hành đã được viết là "=:" (Tôi thực sự không biết ký hiệu nào sẽ là tốt). Sau đó, "x = (y =: y = x)" sẽ hoán đổi x và y. Các ứng dụng khác sẽ là, ví dụ: "return (y =: y + = 4)" sẽ tương tự về mặt khái niệm với toán tử post-increment, nhưng tăng thêm 4 chứ không phải là một. – supercat