Biểu thức nào sau đây là hợp lệ:
Trả lời:
Đáp án đúng: D
Trong C/C++, các biểu thức được đánh giá để xác định tính hợp lệ dựa trên kiểu dữ liệu và các toán tử được sử dụng.
* **A. (1) `int x = 6; x = !x;`**: Toán tử `!` là toán tử NOT logic. Khi `x = 6`, `!x` sẽ trả về `0` (false) vì `x` khác 0. Do đó, `x` sẽ được gán giá trị `0`. Biểu thức này hợp lệ.
* **B. (2) `int x = 6; if (!(x>3)){}`**: `x > 3` trả về `true` (1). `!(x > 3)` sẽ trả về `false` (0). Biểu thức này hợp lệ vì nó sử dụng toán tử so sánh và toán tử NOT logic một cách chính xác trong điều kiện `if`.
* **C. (3) `int x = 6; x = ~x;`**: Toán tử `~` là toán tử NOT bitwise. Nó đảo ngược tất cả các bit của `x`. Nếu `x = 6` (trong hệ nhị phân là `00000110` nếu `int` là 8 bit), `~x` sẽ là `11111001` (tức là -7 nếu `int` là số bù hai). Biểu thức này hợp lệ.
Vì cả (2) và (3) đều đúng, đáp án D là đáp án chính xác nhất.





