Toán tử trong C ++
Một toán tử là một ký hiệu yêu cầu trình biên dịch thực hiện các thao tác toán học hoặc logic cụ thể. C ++ có nhiều toán tử cài sẵn và cung cấp các loại toán tử sau:
- Toán tử số học
- Toán tử quan hệ
- Toán tử logic
- Toán tử Bitwise
- Người điều hành nhiệm vụ
- Nhà điều hành khác
Chương này sẽ lần lượt xem xét các toán tử số học, quan hệ, logic, bitwise, phép gán và các toán tử khác.
Toán tử số học
Có các toán tử số học sau được ngôn ngữ C ++ hỗ trợ:
Giả sử biến A giữ 10 và biến B giữ 20, thì -
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
+ | Thêm hai toán hạng | A + B sẽ cho 30 |
- | Trừ toán hạng thứ hai với toán hạng đầu tiên | A - B sẽ cho -10 |
* | Nhân cả hai toán hạng | A * B sẽ cho 200 |
/ | Chia tử số cho tử số | B / A sẽ cho 2 |
% | Toán tử mô đun và phần còn lại của sau một phép chia số nguyên | B% A sẽ cho 0 |
++ | Toán tử tăng dần , tăng giá trị số nguyên lên một | A ++ sẽ cho 11 |
- | Toán tử giảm dần, giảm giá trị số nguyên đi một | A-- sẽ cho 9 |
Toán tử quan hệ
Có các toán tử quan hệ sau được ngôn ngữ C ++ hỗ trợ
Giả sử biến A giữ 10 và biến B giữ 20, thì -
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
== | Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành true. | (A == B) không đúng. |
! = | Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu các giá trị không bằng nhau thì điều kiện trở thành true. | (A! = B) là đúng. |
> | Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. | (A> B) là không đúng. |
< | Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. | (A <B) là đúng. |
> = | Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. | (A> = B) là không đúng. |
<= | Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. | (A <= B) là đúng. |
Toán tử logic
Có các toán tử logic sau được ngôn ngữ C ++ hỗ trợ.
Giả sử biến A giữ 1 và biến B giữ 0, sau đó -
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
&& | Được gọi là toán tử logic AND. Nếu cả hai toán hạng đều khác 0, thì điều kiện trở thành true. | (A && B) là sai. |
|| | Được gọi là Toán tử logic HOẶC. Nếu bất kỳ toán hạng nào trong hai toán hạng khác 0, thì điều kiện trở thành true. | (A || B) là đúng. |
! | Được gọi là Toán tử logic NOT. Sử dụng để đảo ngược trạng thái logic của toán hạng của nó. Nếu một điều kiện là đúng, thì toán tử logic NOT sẽ sai. | ! (A && B) là đúng. |
Toán tử Bitwise
Toán tử bitwise hoạt động trên các bit và thực hiện thao tác từng bit. Bảng sự thật cho &, |, và ^ như sau:
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Giả sử nếu A = 60; và B = 13; bây giờ ở định dạng nhị phân, chúng sẽ như sau:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ A = 1100 0011
Các toán tử Bitwise được hỗ trợ bởi ngôn ngữ C ++ được liệt kê trong bảng sau. Giả sử biến A giữ 60 và biến B giữ 13, thì -
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
& | Toán tử AND nhị phân sao chép một bit vào kết quả nếu nó tồn tại trong cả hai toán hạng. | (A & B) sẽ cho kết quả 12 là 0000 1100 |
| | Toán tử OR nhị phân sao chép một bit nếu nó tồn tại trong một trong hai toán hạng. | (A | B) sẽ cho 61 là 0011 1101 |
^ | Toán tử XOR nhị phân sao chép bit nếu nó được đặt trong một toán hạng nhưng không phải cả hai. | (A ^ B) sẽ cho 49 là 0011 0001 |
~ | Toán tử bổ sung số nhị phân là một ngôi và có tác dụng 'lật' các bit. | (~ A) sẽ cho -61 là 1100 0011 ở dạng phần bù của 2 do một số nhị phân có dấu. |
<< | Toán tử dịch chuyển trái nhị phân. Giá trị toán hạng bên trái được di chuyển sang trái bằng số bit được chỉ định bởi toán hạng bên phải. | A << 2 sẽ cho 240 là 1111 0000 |
>> | Toán tử Shift phải nhị phân. Giá trị của toán hạng bên trái được di chuyển sang phải bằng số bit được chỉ định bởi toán hạng bên phải. | A >> 2 sẽ cho 15 là 0000 1111 |
Người điều hành nhiệm vụ
Có các toán tử gán sau được ngôn ngữ C ++ hỗ trợ:
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Thí dụ |
---|---|---|
= | Toán tử gán đơn giản, Gán giá trị từ toán hạng bên phải sang toán hạng bên trái. | C = A + B sẽ gán giá trị của A + B vào C |
+ = | Thêm toán tử gán AND, Nó thêm toán hạng bên phải vào toán hạng bên trái và gán kết quả cho toán hạng bên trái. | C + = A tương đương với C = C + A |
- = | Trừ toán tử gán AND, Nó trừ toán hạng bên phải khỏi toán hạng bên trái và gán kết quả cho toán hạng bên trái. | C - = A tương đương với C = C - A |
* = | Nhân toán tử gán AND, Nó nhân toán hạng bên phải với toán hạng bên trái và gán kết quả cho toán hạng bên trái. | C * = A tương đương với C = C * A |
/ = | Toán tử gán AND, Nó chia toán hạng bên trái với toán hạng bên phải và gán kết quả cho toán hạng bên trái. | C / = A tương đương với C = C / A |
% = | Toán tử gán mô-đun AND, Cần mô-đun sử dụng hai toán hạng và gán kết quả cho toán hạng bên trái. | C% = A tương đương với C = C% A |
<< = | Dịch chuyển trái toán tử gán AND. | C << = 2 giống với C = C << 2 |
>> = | Toán tử gán dịch chuyển phải AND. | C >> = 2 giống với C = C >> 2 |
& = | Toán tử gán bitwise AND. | C & = 2 giống C = C & 2 |
^ = | Toán tử OR và gán độc quyền bitwise. | C ^ = 2 giống với C = C ^ 2 |
| = | Bitwise bao gồm OR và toán tử gán. | C | = 2 tương tự như C = C | 2 |
Nhà điều hành khác
Bảng sau liệt kê một số toán tử khác mà C ++ hỗ trợ.
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | sizeof toán tử sizeof trả về kích thước của một biến. Ví dụ: sizeof (a), trong đó 'a' là số nguyên và sẽ trả về 4. |
2 | Condition ? X : Y Toán tử điều kiện (?) . Nếu Điều kiện là đúng thì nó trả về giá trị của X, ngược lại trả về giá trị của Y. |
3 | , Toán tử dấu phẩy gây ra một chuỗi hoạt động được thực hiện. Giá trị của toàn bộ biểu thức dấu phẩy là giá trị của biểu thức cuối cùng của danh sách được phân tách bằng dấu phẩy. |
4 | . (dot) and -> (arrow) Các toán tử thành viên được sử dụng để tham chiếu các thành viên riêng lẻ của các lớp, cấu trúc và liên hiệp. |
5 | Cast Các toán tử truyền chuyển đổi kiểu dữ liệu này sang kiểu dữ liệu khác. Ví dụ, int (2.2000) sẽ trả về 2. |
6 | & Toán tử con trỏ & trả về địa chỉ của một biến. Ví dụ & a; sẽ cung cấp địa chỉ thực của biến. |
7 | * Toán tử con trỏ * là con trỏ tới một biến. Ví dụ * var; sẽ trỏ đến một biến var. |
Ưu tiên toán tử trong C ++
Mức độ ưu tiên của toán tử xác định nhóm các từ trong một biểu thức. Điều này ảnh hưởng đến cách một biểu thức được đánh giá. Các toán tử nhất định có quyền ưu tiên cao hơn những toán tử khác; ví dụ, toán tử nhân có mức độ ưu tiên cao hơn toán tử cộng -
Ví dụ x = 7 + 3 * 2; ở đây, x được gán 13, không phải 20 vì toán tử * có mức độ ưu tiên cao hơn +, vì vậy đầu tiên nó được nhân với 3 * 2 và sau đó cộng thành 7.
Ở đây, các toán tử có mức độ ưu tiên cao nhất xuất hiện ở đầu bảng, những toán tử có mức độ ưu tiên thấp nhất xuất hiện ở cuối bảng. Trong một biểu thức, các toán tử có mức độ ưu tiên cao hơn sẽ được đánh giá đầu tiên.
Hiển thị các ví dụ
thể loại | Nhà điều hành | Sự liên kết |
---|---|---|
Postfix | () [] ->. ++ - - | Trái sang phải |
Một ngôi | + -! ~ ++ - - (type) * & sizeof | Phải sang trái |
Phép nhân | * /% | Trái sang phải |
Phụ gia | + - | Trái sang phải |
Shift | << >> | Trái sang phải |
Quan hệ | <<=>> = | Trái sang phải |
Bình đẳng | ==! = | Trái sang phải |
Bitwise VÀ | & | Trái sang phải |
Bitwise XOR | ^ | Trái sang phải |
Bitwise HOẶC | | | Trái sang phải |
Logic AND | && | Trái sang phải |
Logic HOẶC | || | Trái sang phải |
Có điều kiện | ?: | Phải sang trái |
Chuyển nhượng | = + = - = * = / =% = >> = << = & = ^ = | = | Phải sang trái |
Dấu phẩy | , | Trái sang phải |