BASIC
CONTROL STATEMENTS
DATA TYPE
FUNCTIONS
FILE I/O
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Các toán tử trong C (số học - gán - quan hệ -...)

Trong bài này chúng ta sẽ tìm hiểu một số toán tử thường gặp trong C như: Toán tử số học, toán tử quan hệ, toán tử logic, và toán tử gán.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nói về toán tử thì hầu như ngôn ngữ lập trình nào cũng có, và ý nghĩa sử dụng cũng giống nhau. Chỉ có điều mỗi ngôn ngữ sẽ có một cú pháp riêng nên có thể cách biểu diễn sẽ khác. Tuy nhiên, hầu hết các ngôn ngữ lập trình hiện nay đều có cú pháp sử dụng các toán tử giống nhau lên đến 90%.

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

Một toán tử số học thực hiện các phép toán như cộng, trừ, nhân, chia, v.v. trên các giá trị số (hằng số và biến).

Toán tử Ý nghĩa
+ Phép cộng
- Phép trừ
* Phép nhân
/ Phép chia
% Phép chia lấy dư

Những toán tử này tương đối dễ, chỉ có toán từ % là đặc biệt, nó sẽ lấy kết quả là phần dư của phép chia. Ví dụ 4 % 3 = 1 tại vì 4 chia cho 3 sẽ dư 1.

Bài viết này được đăng tại [free tuts .net]

Xem ví dụ dưới đây:

// Working of arithmetic operators
#include <stdio.h>
int main()
{
    int a = 9,b = 4, c;
    
    c = a+b;
    printf("a+b = %d \n",c);
    c = a-b;
    printf("a-b = %d \n",c);
    c = a*b;
    printf("a*b = %d \n",c);
    c = a/b;
    printf("a/b = %d \n",c);
    c = a%b;
    printf("Chia lay du = %d \n",c);
    
    return 0;
}

Kết quả:

a+b = 13
a-b = 5
a*b = 36
a/b = 2
Chia lay du =1

2. Toán tử tăng giảm 1 đơn vị trong C

Trong C cho phép bạn tăng giá trị của biến lên 1 bằng phép ++, giảm xuống 1 đơn vị bằng phép --. Xem ví dụ sau để hiểu rõ hơn nhé.

#include <stdio.h>
int main()
{
    int a = 10, b = 100;
    float c = 10.5, d = 100.5;

    printf("++a = %d \n", ++a);
    printf("--b = %d \n", --b);
    printf("++c = %f \n", ++c);
    printf("--d = %f \n", --d);

    return 0;
}

Kết quả:

++a = 11
--b = 99
++c = 11.500000
++d = 99.500000

Ngoài ra bạn có thể đặt toán tử này phía sau biến cũng được, tức là a-- hoặc a++.

Sự khác nhau giữa hai cách đặt này là như sau:

  • Nếu bạn đặt toán tử ở phía trước thì trình biên dịch sẽ ưu tiên chạy toán tử này trước, tức là giá trị sẽ tăng / giảm trước khi thực hiện các phép khác.
  • Nếu đặt phía sau thì nó sẽ tính các phép toán khác rồi mới tăng / giảm cho biến.

Ví dụ:

int a = 12;
int b;

b = ++a; // b = 13
b = a++; // b = 12

3. Toán tử gán trong C

Toán tử gán dùng để gán / thay đổi giá trị cho biến. Trong C có tổng cộng 6 toán tử gán thường sử dụng nhất, đó là:

Toán tử Ví dụ Tương đương
= a = b a = b
+= a += b a = a+b
-= a -= b a = a-b
*= a *= b a = a*b
/= a /= b a = a/b
%= a %= b a = a%b

Khi bạn sử dụng các toán tử số học kèm với toán tử bằng thì đồng nghĩa với việc ghi tắt ở cột tương đương (trong bảng trên).

Ví dụ:

#include <stdio.h>
int main()
{
    int a = 5, c;

    c = a;      // c is 5
    printf("c = %d\n", c);
    c += a;     // c is 10 
    printf("c = %d\n", c);
    c -= a;     // c is 5
    printf("c = %d\n", c);
    c *= a;     // c is 25
    printf("c = %d\n", c);
    c /= a;     // c is 5
    printf("c = %d\n", c);
    c %= a;     // c = 0
    printf("c = %d\n", c);

    return 0;
}

Kết quả:

c = 5 
c = 10 
c = 5 
c = 25 
c = 5 
c = 0

Đây là những toán tử được sử dụng rất thường xuyên trong lập trình C.

4. Toán tử quan hệ trong C

Toán tử quan hệ dùng để trả về mối quan hệ giữa hai biểu thức hoặc hai toán hạng. Kết quả trả về của nó là TRUE hoặc FALSE.

  • TRUE đồng nghĩa với 1
  • FALSE đồng nghĩa với 0

Đây là toán tử khá quan trọng bởi nó được dùng để kiểm tra tính logic của bài toán, kể cả trong thực tế hay lúc học đều đụng đến nó khá nhiều.

Sau đây là bảng danh sách các toán tử quan hệ trong ngôn ngữ C.

Toán tử Ý nghĩa Ví dụ
== So sánh bằng 5 == 3 trả về 0
> So sánh lớn hơn 5 > 3 trả về 1
< So sánh bé hơn 5 < 3 trả về 0
!= So sánh không bằng 5 != 3 trả về 1
>= Lớn hơn hoặc bằng 5 >= 3 trả về 1
<= Bé hơn hoặc bằng 5 <= 3 trả về 0

Xem ví dụ sau:

// Working of relational operators
#include <stdio.h>
int main()
{
    int a = 5, b = 5, c = 10;

    printf("%d == %d is %d \n", a, b, a == b);
    printf("%d == %d is %d \n", a, c, a == c);
    printf("%d > %d is %d \n", a, b, a > b);
    printf("%d > %d is %d \n", a, c, a > c);
    printf("%d < %d is %d \n", a, b, a < b);
    printf("%d < %d is %d \n", a, c, a < c);
    printf("%d != %d is %d \n", a, b, a != b);
    printf("%d != %d is %d \n", a, c, a != c);
    printf("%d >= %d is %d \n", a, b, a >= b);
    printf("%d >= %d is %d \n", a, c, a >= c);
    printf("%d <= %d is %d \n", a, b, a <= b);
    printf("%d <= %d is %d \n", a, c, a <= c);

    return 0;
}

Kết quả:

5 == 5 is 1
5 == 10 is 0
5 > 5 is 0
5 > 10 is 0
5 < 5 is 0
5 < 10 is 1
5 != 5 is 0
5 != 10 is 1
5 >= 5 is 1
5 >= 10 is 0
5 <= 5 is 1
5 <= 10 is 1 

5. Toán tử logic trong C

Biểu thức chứa toán tử logic trả về 0 (FALSE) hoặc 1 (TRUE) tùy thuộc vào kết quả biểu thức là đúng hay sai. Các toán tử logic thường được sử dụng trong việc ra quyết định làm một điều gì đó trong lập trình.

Giả sử ta có A (operator) B, trong đó operator chính là một trong ba toán tử dưới đây.

Toán tử Ý nghĩa
&& (AND) Trả về true khi A và B đều true, chỉ cần một trong hai vế sai là trả về false
|| (OR) Trả về true khi một trong hai vế đúng, trả về false khi cả hai vế sai.
! (NOT) Toán tử phủ định, trả về true nếu biểu thức false, trả về false nếu biểu thức true

Xem ví dụ sau.

#include <stdio.h>
int main()
{
    int a = 5, b = 5, c = 10, result;

    result = (a == b) && (c > b);
    printf("(a == b) && (c > b) is %d \n", result);
    result = (a == b) && (c < b);
    printf("(a == b) && (c < b) is %d \n", result);
    result = (a == b) || (c < b);
    printf("(a == b) || (c < b) is %d \n", result);
    result = (a != b) || (c < b);
    printf("(a != b) || (c < b) is %d \n", result);
    result = !(a != b);
    printf("!(a == b) is %d \n", result);
    result = !(a == b);
    printf("!(a == b) is %d \n", result);

    return 0;
}

Kết quả:

(a == b) && (c > b) is 1 
(a == b) && (c < b) is 0 
(a == b) || (c < b) is 1 
(a != b) || (c < b) is 0 
!(a != b) is 1 
!(a == b) is 0 

Trên là 5 loại toán tử được được sử dụng nhiều nhất khi làm việc với ngôn ngữ lập trình C. Bạn hãy thử chạy các ví dụ, thay giá trị cho các biến để hiểu rõ ý nghĩa của từng toán tử nhé.

Sau khi học xong bài này là ta có thể học những kiến thức cao hơn đó chính là các lệnh rẻ nhánh và vòng lặp. Hẹn gặp lại bạn ở chương kế tiếp nhé.

Cùng chuyên mục:

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thông dụng của Map trong C++

[STL] Các hàm thông dụng của Map trong C++

[STL] Danh sách các hàm Algorithm thường dùng trong C++

[STL] Danh sách các hàm Algorithm thường dùng trong C++

Top