Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Các toán tử đơn ngôi (Unary operators) trong C++

Toán tử đơn ngôi (Unary operator) là các toán tử tác động lên một toán hạng đơn lẻ để tạo ra giá trị mới. Các toán tử đơn ngôi bao gồm:

Toán tử Mô tả
Toán tử gián tiếp (*) Tác động trên biến con trỏ, trả về một l-value tương đương với giá trị tại địa chỉ con trỏ. Điều này gọi là "gián tiếp hóa" (dereferencing) con trỏ.
Toán tử lấy địa chỉ (&) Toán tử lấy địa chỉ đơn ngôi (&) lấy địa chỉ của toán hạng. Toán hạng có thể là chỉ định hàm hoặc một l-value chỉ định đối tượng không phải bit-field và không được khai báo với specifier lưu trữ register.
Toán tử dương đơn ngôi (+) Kết quả là giá trị của toán hạng. Toán hạng phải là kiểu số học.
Toán tử âm đơn ngôi (-) Phủ định giá trị của toán hạng. Toán hạng có thể là bất kỳ kiểu số học nào. Kết quả không phải là lvalue.
Toán tử phủ định logic (!) Đảo ngược ý nghĩa của toán hạng. Toán hạng phải là kiểu số học hoặc con trỏ (hoặc biểu thức đánh giá thành số học/con trỏ). Toán hạng được chuyển ngầm sang kiểu bool.
Toán tử bổ sung 1 (~) Còn gọi là "bitwise complement" hoặc "bitwise NOT", tạo ra phần bù 1 bitwise của toán hạng. Toán hạng phải là kiểu nguyên.
Toán tử tiền tố tăng (++) Thêm 1 vào toán hạng; giá trị tăng là kết quả biểu thức. Toán hạng phải là l-value không phải const. Kết quả là l-value cùng kiểu với toán hạng.
Toán tử tiền tố giảm (--) Trừ 1 từ toán hạng; giá trị giảm là kết quả biểu thức. Toán hạng phải là l-value không phải const. Kết quả là l-value cùng kiểu với toán hạng.
Toán tử ép kiểu () Cung cấp phương pháp chuyển đổi tường minh kiểu của một đối tượng trong tình huống cụ thể. Trình biên dịch xử lý cast-expression như kiểu type-name sau khi ép kiểu.
Toán tử sizeof Là toán tử đơn ngôi thời gian biên dịch dùng để tính kích thước của toán hạng.
Toán tử new Toán tử cấp phát bộ nhớ dùng để cấp phát động.
Toán tử delete Toán tử giải phóng bộ nhớ dùng để giải phóng bộ nhớ đã cấp phát động.

Các toán tử này có tính kết hợp từ phải sang trái. Biểu thức đơn ngôi thường liên quan đến cú pháp đứng trước biểu thức postfix hoặc primary.

Ví dụ

Ví dụ về toán tử âm (-) và ép kiểu ():

#include <iostream>
using namespace std;
int main() {
    int x;
    float y = 1.23;
    x = (int) y;
    x = -x;
    cout << x;
    return 0;
}

Kết quả

-1