Tôi nghĩ rằng bạn chủ yếu trả lời câu hỏi của riêng bạn. Tôi có thể thực hiện một thay đổi nhỏ đối với cách viết của bạn và thay thế "biến tạm thời" bằng "rvalue" như C.Gibbons đã đề cập.
Các điều khoản thay đổi, tranh luận, biến tạm thời và như vậy sẽ trở nên rõ ràng hơn khi bạn tìm hiểu về mô hình bộ nhớ C (điều này trông giống như một cái nhìn tổng quan tốt đẹp: https://www.geeksforgeeks.org/memory-layout-of-c-program/ ).
Thuật ngữ "rvalue" có vẻ không rõ ràng khi bạn mới bắt đầu, vì vậy tôi hy vọng những điều sau đây sẽ giúp phát triển trực giác về nó.
Giá trị / giá trị đang nói về các cạnh khác nhau của một dấu bằng (toán tử gán): lvalue = phía bên trái (chữ L viết thường, không phải "một") rvalue = phía bên phải
Tìm hiểu một chút về cách C sử dụng bộ nhớ (và các thanh ghi) sẽ hữu ích để hiểu tại sao sự khác biệt lại quan trọng. Trong các nét vẽ rộng , trình biên dịch tạo một danh sách các lệnh ngôn ngữ máy tính toán kết quả của một biểu thức (giá trị) và sau đó đặt kết quả đó ở đâu đó (giá trị). Hãy tưởng tượng một trình biên dịch xử lý đoạn mã sau:
x = y * 3
Trong mã giả lắp ráp, nó có thể trông giống như ví dụ đồ chơi này:
load register A with the value at memory address y
load register B with a value of 3
multiply register A and B, saving the result in A
write register A to memory address x
Toán tử ++ (và - đối của nó) cần một "nơi nào đó" để sửa đổi, về cơ bản là bất kỳ thứ gì có thể hoạt động như một giá trị.
Việc hiểu mô hình bộ nhớ C sẽ rất hữu ích vì bạn sẽ có ý tưởng tốt hơn trong đầu về cách các đối số được truyền cho các hàm và (cuối cùng) cách làm việc với cấp phát bộ nhớ động, như hàm malloc (). Vì những lý do tương tự, bạn có thể học lập trình hợp ngữ đơn giản tại một số điểm để hiểu rõ hơn về những gì trình biên dịch đang làm. Ngoài ra, nếu bạn đang sử dụng gcc , tùy chọn -S "Dừng sau giai đoạn biên dịch thích hợp; không lắp ráp." có thể rất thú vị (mặc dù tôi khuyên bạn nên cố gắng nó trên một nhỏ đoạn mã).
Chỉ là một bên: Lệnh ++ đã xuất hiện từ năm 1969 (mặc dù nó bắt đầu từ tiền thân của C, B):
(Ken Thompson's) quan sát (là) rằng phép tịnh tiến của ++ x nhỏ hơn phép tịnh tiến của x = x + 1. "
Tiếp theo tài liệu tham khảo wikipedia đó sẽ đưa bạn đến một bài viết thú vị của Dennis Ritchie (chữ "R" trong "K&R C") về lịch sử của ngôn ngữ C, được liên kết tại đây để thuận tiện: http://www.bell-labs.com/ usr / dmr / www / chist.html nơi bạn có thể tìm kiếm "++".