Trong C++, ,
là một toán tử, và do đó (23,34)
là một biểu thức giống như (23+34)
là một biểu thức. Trước đây, ,
là một toán tử, trong khi sau, +
là toán tử.
Vì vậy, biểu thức (23,34)
đánh giá toán hạng gần nhất bên phải là 34
đó là lý do mã của bạn xuất ra 34
.
Tôi cũng muốn đề cập đến rằng ,
không phải là một nhà điều hành trong một cuộc gọi chức năng:
int m = max(a,b);
Đây ,
đóng vai trò một tách các đối số. Nó không hoạt động như nhà điều hành. Vì vậy, bạn vượt qua hai đối số cho hàm.
Tuy nhiên,
int m = max((a,b), c);
đây đầu tiên ,
là một nhà điều hành, và thứ hai ,
là một dấu phân cách. Vì vậy, bạn vẫn chuyển hai đối số cho hàm, chứ không phải ba đối số và tương đương với hàm này:
int m = max(b, c); //as (a,b) evaluates to b
Hy vọng điều đó sẽ hữu ích. :-)
Tất nhiên ý nghĩa thực sự là một số ass thông minh sử dụng toán tử dấu phẩy, rất hiếm khi được chứng minh. – Yakk