Operator trong C++

Ngôn ngữ lập trình C hỗ trợ rất nhiều toán tử khác nhau. Trong bài viết này, mình sẽ giải thích về toán tử mũi tên (arrow operator), nó cũng có thể được gọi là toán tử thành viên.

[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]

Arrow operator (->) được sử dụng để truy cập vào thành viên của một structure sử dụng biến con trỏ. Để khai báo con trỏ ptr trỏ đến 1 structure kiểu Sinhvien, các bạn khai báo như ví dụ sau: 

1

2

3

4

5

struct Sinhvien

{

  char HoTen[20],

  int MaSV;

}*ptr;

Bình thường, khi các bạn khai báo 1 biến structure thì các bạn có thể truy cập đến thành viên của structure đó thông qua toán tử dot(.). Nhưng đối với một con trỏ trỏ tới một structure thì toán tử mũi tên (->) sẽ được sử dụng thay cho toán tử dot (.).

Ví dụ 1:

1

2

3

4

5

struct Sinhvien

{

  char HoTen[20],

  int MaSV;

}std;

Ví dụ 2:

1

2

3

4

5

struct Sinhvien

{

  char HoTen[20],

  int MaSV;

}*ptr;

Truy cập vào thành viên structureVí dụ 1Ví dụ 2Truy cập vào thành viên HoTenstd.HoTenptr->HoTenTruy cập vào thành viên MaSVstd.MaSVptr->MaSV

Chúng ta có thể kết luận rằng toán tử mũi tên được sử dụng để truy cập các thành viên của một structure khi chúng ta sử dụng biến con trỏ để làm việc với structure đó. Trong trường hợp nếu chúng ta muốn truy cập các thành viên của structure bằng biến structure thông thường thì chúng ta có thể sử dụng toán tử dấu chấm.

Khi lập trình với vi điều khiển STM32 sử dụng thư viện HAL các bạn thường gặp toán tử mũi tên (->) vì thư viện này sử dụng rất nhiều con trỏ trỏ để các structure. 

Trong bài viết dưới đây Taimienphi.vn sẽ giới thiệu cho bạn về toán tử trong C++ là gì, bạn đọc cùng tham khảo bài viết dưới đây của Taimienphi.vn.

Operator trong C++

Toán tử trong C++

Mục lục bài viết

1. Toán tử trong C++

2. Các kiểu toán tử trong C++

3. Toán tử gán trong C++ (=)

4. Toán tử số học trong C++

5. Toán tử quan hệ trong C++

6. Toán tử logic trong C++

7. Toán tử thao tác bit (Bitwise Operator) trong C++

8. Toán tử Shift trong C++

9. Toán tử một ngôi trong C++

10. Toán tử 3 ngôi trong C++

11. Toán tử Comma trong C++

Toán tử là một hàm đặc biệt, có một hoặc nhiều đối số và tạo ra giá trị mới. Cho ví dụ, dấu cộng (+), trừ (-), nhân (*), ... đều là các toán tử. Các toán tử được sử dụng để thực hiện các hoạt động khác nhau trên các biến và hằng khác nhau.

Operator trong C++

Các kiểu toán tử trong C++

- Toán tử gán

- Toán tử số học

- Toán tử quan hệ

- Toán tử logic

- Toán tử thao tác bit (Bitwise Operator)

- Toán tử Shift

- Toán tử một ngôi (Unary Operator)

- Toán tử 3 ngôi (Ternary Operator)

- Toán tử Comma

Toán tử gán trong C++ (=)

Toán tử "=" được sử dụng để gán, nó lấy phần phía bên phải (được gọi là rvalue) và sao chép vào phía bên trái (được gọi là lvalue). Toán tử gán là toán tử duy nhất có thể nạp chồng nhưng không thể kế thừa.

Toán tử số học trong C++

Các toán tử được sử dụng để thực hiện các phép tính toán học cơ bản. Cộng (+), trừ (-), nhân (*), chia (/) và modulus (%) là các toán tử cơ bản. Trong đó toán tử Modulus không thể áp dụng cho số thực dấu phẩy động.

Ngoài ra C++ và C cũng sử dụng các ký hiệu tốc ký để thực hiện thao tác và gán cùng kiểu.

Ví dụ:

int x=10;

x + = 4 // sẽ thêm 4 đến 10 và gán 14 cho X.

x - = 5 // sẽ trừ 5 từ 10 và gán 5 cho x.

Toán tử quan hệ trong C++

Toán tử quan hệ trong C++ thiết lập mối quan hệ giữa các toán hạng với nhau. Toán tử quan hệ trong C++ bao gồm: nhỏ hơn (<), lớn="" hơn="" (="">) hoặc bằng (=), lớn hơn bằng (>=), tương đương (==) và không tương đương (!=).

Một lưu ý nhỏ cần lưu ý là toán tử gán (=) và toán tử tương đương (==) trong toán tử quan hệ là khác nhau. Trong đó, toán tử gán được sử dụng để gán giá trị cho biến bất kỳ, còn toán tử tương đương được sử dụng để so sánh các giá trị, tương tự như điều kiện if - else.

Dưới đây là ví dụ về toán tử quan hệ trong C++:

int x = 10; //toán tử gán

x=5; // toán tử gán

if(x == 5) // ở đây chúng ta sử dụng toán tử tương đương, để so sánh

{

cout <"so sánh="" thành="">

}

Toán tử logic trong C++

Các toán tử logic bao gồm AND (&&) và OR (||) được sử dụng để kết hợp 2 biểu thức khác nhau với nhau.

Nếu sử dụng toán tử AND để kết nối 2 lệnh với nhau, tính hợp lệ của 2 lệnh sẽ được xem xét, nhưng nếu được kết hợp bằng toán tử OR thì một trong hau lệnh phải hợp lệ.

Các toán tử này chủ yếu được sử dụng trong các vòng lặp (đặc biệt là vòng lặp while) và trong lệnh điều kiện.

Toán tử thao tác bit (Bitwise Operator) trong C++

Toán tử thao tác bit (Bitwise Operator) trong C++ được sử dụng để thực hiện thao tác từng bit một. Chúng chỉ hoạt động với các kiểu dữ liệu tách rời như char, int và long chứ không hoạt động với các giá trị dấu phẩy động.

- Toán tử thao tác bit AND (&).

- Toán tử thao tác bit OR (|).

- Toán tử thao tác bit XOR (^).

- Toán tử thao tác bit NOT (-).

Ngoài ra chúng ta có thể sử dụng để làm ký hiệu viết tắt, & =, | =, ^ =, - =, ... .

Toán tử Shift trong C++

Toán tử Shift được sử dụng để thay đổi bit của biến bất kỳ, bao gồm 3 kiểu:

- Toán tử dịch sang trái <>

- Toán tử dịch sang phải >>.

- Toán tử dịch sang phải unsigned >>>.

Toán tử một ngôi trong C++

Toán tử một ngôi trong C++ là toán tử chỉ hoạt động trên một toán hạng. Có nhiều toán tử một ngôi khác nhau, trong đó toán tử ++ và -- được sử dụng nhiều nhất.

Ngoài ra còn có một số toán tử một ngôi khác như $, *, new and delete, toán tử thao tác bit not -, toán tử logic not !, toán tử một ngôi trừ (-) và toán tử một ngôi cộng (+).

Toán tử 3 ngôi trong C++

Toán tử if-else ? : là toán tử có 3 toán hạng.

Dưới đây là ví dụ về toán tử 3 ngôi trong C++:

int a = 10;

a > 5 ? cout < "true"="" :="" cout=""><>

Toán tử Comma trong C++

Toán tử này được sử dụng để tách tên biến và tách biểu thức. Trong trường hợp biểu thức, giá trị của biểu thức cuối cùng được tạo ra và sử dụng.

Cho ví dụ về toán tử Comma trong C++:

int a,b,c; // khai báo biến bằng toán tử comma

a=b++, c++; // a = c++ sẽ được thực hiện.

Như vậy bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về toán tử trong C++. Trong các bài viết tiếp theo Taimienphi.vn sẽ giới thiệu tiếp cho bạn về vòng lặp trong C++ là gì.