Theo Mức độ ưu tiên của toán tử , toán tử dấu phẩy có mức độ ưu tiên thấp hơn operator=
, do đó, x = 2,3;
tương đương với (x = 2),3;
. (Mức độ ưu tiên của toán tử xác định cách toán tử sẽ bị ràng buộc với các đối số của nó, chặt hơn hoặc lỏng hơn so với các toán tử khác theo các ưu tiên của chúng.)
Lưu ý rằng biểu thức dấu phẩy (x = 2),3
ở đây, không phải 2,3
. x = 2
được đánh giá lúc đầu (và các tác dụng phụ của nó được hoàn thành), sau đó kết quả bị loại bỏ, sau đó 3
được đánh giá (trên thực tế nó không làm gì cả). Đó là lý do tại sao giá trị của x
là 2
. Lưu ý rằng đó 3
là kết quả của toàn bộ biểu thức dấu phẩy (tức là x = 2,3
), nó sẽ không được sử dụng để gán cho x
. (Thay đổi nó thành x = (2,3);
, x
sẽ được chỉ định với 3
.)
Đối với return 2,3;
, khái niệm dấu phẩy là 2,3
, 2
được đánh giá thì kết quả của nó được loại bỏ, và sau đó 3
được đánh giá và trở về như là kết quả của biểu thức dấu phẩy toàn bộ, mà được trả về bởi lệnh return sau.
Thông tin bổ sung về Biểu thức và Tuyên bố
Một biểu thức là một chuỗi các toán tử và toán hạng của chúng, chỉ định một phép tính.
x = 2,3;
là câu lệnh biểu thức , x = 2,3
là biểu thức ở đây.
Biểu thức được theo sau bởi dấu chấm phẩy là một câu lệnh.
Cú pháp: attr(optional) expression(optional) ; (1)
return 2,3;
là câu lệnh nhảy ( câu lệnh trả về ), 2,3
là biểu thức ở đây.
Cú pháp: attr(optional) return expression(optional) ; (1)