Toán tử là gì? Các toán tử trong C, C++ thường gặp

Toán tử là một thành phần không thể thiếu để thực hiện các phép toán trong lập trình. Trong bài viết này, hãy cùng tìm hiểu Toán tử là gì? Các toán tử trong C, C++ thường sử dụng nhé!

Bài viết được thực hiện trên laptop LG. Bạn có thể thao tác tương tự trên các dòng máy tính khác sử dụng hệ điều hành Windows và MacOS.

Toán tử là gì?

Trong toán học, toán tử là các dấu hoặc ký hiệu như: cộng (+), trừ (), nhân (x), chia (:), căn bậc 2 (), lớn (>), bé (<), bằng (=),…

Toán tử là công cụ dùng để thực hiện các phép tính hoặc chức năng với dữ liệu trong lập trình được thể hiện dưới dạng ký hiệu, biểu tượng nhằm thực hiện các biểu thức.

Toán tử là công cụ dùng để thực hiện các phép tính hoặc chức năng
Toán tử là công cụ dùng để thực hiện các phép tính hoặc chức năng

Các toán tử trong C, C++

Toán tử số học

Đây là toán tử cơ bản nhất trong lập trình, toán tử số học là những phép toán cộng, trừ, nhân, chia cơ bản như trong toán học.

Bảng tổng hợp các ký hiệu toán tử số học: Giả sử X = 30; Y=4

Ký hiệu toán tử Miêu tả Cú pháp Kết quả
+ Phép cộng X + Y 30 + 4 = 34
Phép trừ X – Y 30 – 4 = 26
* Phép nhân X * Y 30 * 4 = 120
/ Phép chia X / Y 30 / 4 = 7.5
% Phép chia lấy phần dư X % Y 30 % 4 = 2
++ Tăng 1 đơn vị:

  • ++X: tăng 1 giá trị của biến X, sau đó X được dùng để tính toán.
  • X++: dùng X để tính toán, sau đó tăng 1 giá trị của biến X.
A= ++X + 100

A = X++ + 100

X= 131; A= 31

X= 131; A= 30

Giảm 1 đơn vị:

  • –X: giảm 1 giá trị của biến X, sau đó X được dùng để tính toán.
  • X–: dùng X để tính toán, sau đó giảm 1 giá trị của biến X.
A = –X + 100

A = X– + 100

X= 129; A= 29

X= 129; A= 30

Toán tử so sánh

Toán tử so sánh (toán tử quan hệ) dùng để so sánh hai toán hạng (2 biến giá trị) với nhau. Kết quả trả lại của toán tử so sánh nếu đúng thì sẽ là 1 (True), còn nếu sai thì kết quả sẽ là 0 (False).

Bảng tổng hợp các ký hiệu toán tử so sánh: Giả sử X= 30; Y= 4; TRUE = 1; FALSE = 0

Ký hiệu toán tử Miêu tả Cú pháp Ví dụ Kết quả
== Bằng X == Y 30 == 4 0
!= Không bằng (Khác) X != Y 30 != 4 1
> Lớn hơn X > Y 30 > 4 1
< Bé hơn X < Y 30 < 4 0
>= Lớn hơn hoặc bằng X >= Y 30 >= 4 1
<= Bé hơn hoặc bằng X <= Y 30 <= 4 0

Toán tử logic

Toán tử logic (toán tử luận lý) được dùng để kiểm tra nhiều điều kiện cùng lúc. Kết quả trả lại của toán tử logic cũng giống với toán tử so sánh, nếu đúng thì kết quả là 1 (True), còn sai thì kết quả sẽ là 0 (False).

Bảng tổng hợp các ký hiệu toán tử logic: TRUE = 1; FALSE = 0

Ký hiệu toán tử Miêu tả Cú pháp Ví dụ  Kết quả
&& AND

Cả 2 mệnh đề phải đều đúng thì kết quả là TRUE

(Mệnh đề 1) && (Mệnh đề 2) (0 <= 5) && (5 < 5) 0
|| OR

Chỉ cần 1 trong 2 mệnh đề đúng thì kết quả là TRUE

(Mệnh đề 1) || (Mệnh đề2) (0 <= 5) && (5 < 5) 1
! NOT

Phủ định mệnh đề

!(Mệnh đề) !(0 == 5) 1

Toán tử gán

Toán tử gán được dùng để lưu giá trị cho biến. Giá trị đó có thể là một hằng số, biến số, một biểu thức hoặc kết quả của một hàm. Đây là một trong những toán tử được sử dụng thường xuyên nhất trong lập trình.

Bảng tổng hợp ký hiệu toán tử gán:

Ký hiệu toán tử Miêu tả Cú pháp Phép toán tương đương
= Toán tử gán đơn giản. Gán giá trị toán hạng bên phải cho toán hạng trái. X = 1

X = Y

X = Y + Z

+= Thêm giá trị toán hạng phải tới toán hạng trái và gán giá trị đó cho toán hạng trái. X += Y X = X + Y
-= Trừ đi giá trị toán hạng phải từ toán hạng trái và gán giá trị này cho toán hạng trái. X -= Y X = X – Y
*= Nhân giá trị toán hạng phải với toán hạng trái và gán giá trị này cho toán hạng trái. X *= Y X = X * Y
/= Chia toán hạng trái cho toán hạng phải và gán giá trị này cho toán hạng trái. X /= Y X = X / Y
%= Lấy phần dư của phép chia toán hạng trái cho toán hạng phải và gán cho toán hạng trái. X %=Y X = X % Y
<<= Dịch trái toán hạng trái sang số vị trí là giá trị toán hạng phải. X <<= Y X = X << Y
>>= Dịch phải toán hạng trái sang số vị trí là giá trị toán hạng phải. X <<= Y X = X << Y
&= Phép AND bit X &= Y X = X & Y
^= Phép OR loại trừ bit X ^= Y X = X ^ Y
|= Phép OR bit. X |= Y X = X | Y

Toán tử hỗn hợp

Ngoài các toán tử trên, trong ngôn ngữ C/C++ còn có một số toán tử khác thường dùng sau:

Ký hiệu toán tử Miêu tả Cú pháp Kết quả
, Dấu phẩy: ngăn cách các biến, biểu thức int X, Y, Z

X = Y + Z, A = B – C

& Trả lại địa chỉ của một biến &X Trả lại địa chỉ thực sự của biến X.
* Trỏ tới một biến. *X Con trỏ đi tới biến X.
?: Toán tử điều kiện (X > Y) ? A : B Nếu điều kiện đúng thì trả lại giá trị A, nếu không thì giá trị B
sizeof() Toán tử sizeof: trả lại kích cỡ của một biến sizeof(X) X là một số nguyên.

Thứ tự ưu tiên của các toán tử trong C, C++

Thứ tự ưu tiên

Cũng giống như trong toán học, chúng ta có nguyên tắc ưu tiên kinh điển là “nhân chia trước, cộng trừ sau”. Trong lập trình cũng tương tự như vậy, chúng ta phải nắm được những thứ tự ưu tiên này để xác định cách thực hiện tính toán của biểu thức.

Bảng dưới đây liệt kê thứ tự thực hiện các toán tử trong C, C++ với độ ưu tiên được xếp từ cao xuống thấp:

Độ ưu tiên Phân loại toán tử Toán tử Thứ tự ưu tiên trong toán tử
1 Hậu tố ()  ->  .  ++  — Trái sang phải
2 Đơn ngôi +  –  !  ~  ++  —  (type)*  &  sizeof Phải sang trái
3 Tính nhân, chia *  /  % Trái sang phải
4 Tính cộng, trừ +  – Trái sang phải
5 Dịch chuyển <<  >> Trái sang phải
6 Quan hệ <   <=   >   >= Trái sang phải
7 So sánh bằng ==   != Trái sang phải
8 AND && Trái sang phải
9 OR || Trái sang phải
10 Điều kiện ?: Phải sang trái
11 Gán =  +=  -=  *=  /=  %=  >>=  <<=  &=  ^=  |= Phải sang trái
12 Dấu phẩy , Trái sang phải

Thay đổi thứ tự ưu tiên

Tương tự với nguyên tắc “nhân chia trước – cộng trừ sau”, để thay đổi thứ tự ưu tiên trên một biểu thức, bạn có thể dùng dấu ngoặc đơn ().

Lưu ý:

  • Phần được giới hạn trong ngoặc đơn được thực hiện trước.
  • Nếu có nhiều ngoặc đơn lồng nhau thì toán tử nằm trong ngoặc đơn phía trong cùng sẽ thực thi trước, sau đó đến các ngoài đơn phía ngoài.
  • Trong phạm vi một cặp ngoặc đơn thì quy tắc thứ tự ưu tiên vẫn giữ nguyên tác dụng.

Bài viết trên đã giới thiệu đến bạn về các toán tử trong C, C++ thường sử dụng. Hãy chia sẻ bài viết đến bạn bè và để lại bình luận bên dưới để được giải đáp nếu có bất kỳ thắc mắc nào nhé. Cảm ơn các bạn đã theo dõi bài viết.

Bài viết liên quan
Bài viết nên xem