C toán tử

Trong hướng dẫn này, bạn sẽ tìm hiểu về các toán tử khác nhau trong lập trình C với sự trợ giúp của các ví dụ.

Toán tử là một ký hiệu hoạt động trên một giá trị hoặc một biến. Ví dụ: + là một toán tử để thực hiện phép cộng.

C có một loạt các toán tử để thực hiện các hoạt động khác nhau.

C Toán tử số họ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 số).

OperatorMeaning of Operator
+addition or unary plus
subtraction or unary minus
*multiplication
/division
%remainder after division (modulo division)

Ví dụ 1: Toán tử số học

// 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("Remainder when a divided by b = %d \n",c);
    
    return 0;
}

Đầu ra

a+b = 13
a-b = 5
a*b = 36
a/b = 2
Remainder when a divided by b=1

Các nhà khai thác +-và *tính cộng, trừ, và nhân tương ứng như bạn có thể mong đợi.

Trong tính toán thông thường 9/4 = 2.25,. Tuy nhiên, đầu ra nằm 2trong chương trình.

Đó là vì cả hai biến a và b đều là số nguyên. Do đó, đầu ra cũng là một số nguyên. Trình biên dịch bỏ qua thuật ngữ sau dấu thập phân và hiển thị câu trả lời 2thay vì 2.25.

Toán tử modulo %tính phần còn lại. Khi nào a=9thì chia cho b=4, phần còn lại là 1. Các %nhà điều hành chỉ có thể được sử dụng với số nguyên.

Giả sử a = 5.0b = 2.0c = 5và d = 2. Sau đó, trong lập trình C,

// Either one of the operands is a floating-point number
a/b = 2.5  
a/d = 2.5  
c/b = 2.5  

// Both operands are integers
c/d = 2

C Các toán tử tăng và giảm

Lập trình C có hai toán tử tăng ++và giảm --để thay đổi giá trị của một toán hạng (hằng hoặc biến) 1.

Sự ++tăng lên làm tăng giá trị 1 trong khi --giảm giá trị giảm đi 1. Hai toán tử này là toán tử một ngôi, có nghĩa là chúng chỉ hoạt động trên một toán hạng duy nhất.

Ví dụ 2: Các toán tử tăng và giảm

// Working of increment and decrement operators
#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;
}

Đầu ra

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

Ở đây, các toán tử ++và --được sử dụng làm tiền tố. Hai toán tử này cũng có thể được sử dụng làm hậu tố như a++và a--. Hãy truy cập trang này để tìm hiểu thêm về cách các toán tử tăng và giảm hoạt động khi được sử dụng làm hậu tố .

C Người điều hành nhiệm vụ

Một toán tử gán được sử dụng để gán một giá trị cho một biến. Toán tử gán phổ biến nhất là=

OperatorExampleSame as
=a = ba = b
+=a += ba = a+b
-=a -= ba = a-b
*=a *= ba = a*b
/=a /= ba = a/b
%=a %= ba = a%b

Ví dụ 3: Toán tử chuyển nhượng

// Working of assignment operators
#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;
}

Đầu ra

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

C Toán tử quan hệ

Một toán tử quan hệ kiểm tra mối quan hệ giữa hai toán hạng. Nếu quan hệ là true, nó trả về 1; nếu quan hệ là sai, nó trả về giá trị 0.

Các toán tử quan hệ được sử dụng trong việc ra quyết định và các vòng lặp .

OperatorMeaning of OperatorExample
==Equal to5 == 3 is evaluated to 0
>Greater than5 > 3 is evaluated to 1
<Less than5 < 3 is evaluated to 0
!=Not equal to5 != 3 is evaluated to 1
>=Greater than or equal to5 >= 3 is evaluated to 1
<=Less than or equal to5 <= 3 is evaluated to 0

Ví dụ 4: Toán tử quan hệ

// 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;
}

Đầu ra

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 

C Toán tử logic

Một biểu thức chứa toán tử logic trả về 0 hoặc 1 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 trong lập trình C .

OperatorMeaningExample
&&Logical AND. True only if all operands are trueIf c = 5 and d = 2 then, expression ((c==5) && (d>5)) equals to 0.
||Logical OR. True only if either one operand is trueIf c = 5 and d = 2 then, expression ((c==5) || (d>5)) equals to 1.
!Logical NOT. True only if the operand is 0If c = 5 then, expression !(c==5) equals to 0.

Ví dụ 5: Toán tử lôgic

// Working of logical operators

#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;
}

Đầu ra

(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 

Giải thích chương trình toán tử logic

  • (a == b) && (c > 5) evaluates to 1 because both operands (a == b) and (c > b) is 1 (true).
  • (a == b) && (c < b) evaluates to 0 because operand (c < b) is 0 (false).
  • (a == b) || (c < b) evaluates to 1 because (a = b) is 1 (true).
  • (a != b) || (c < b) evaluates to 0 because both operand (a != b) and (c < b) are 0 (false).
  • !(a != b) evaluates to 1 because operand (a != b) is 0 (false). Hence, !(a != b) is 1 (true).
  • !(a == b) evaluates to 0 because (a == b) is 1 (true). Hence, !(a == b) is 0 (false).

C Các toán tử Bitwise

Trong quá trình tính toán, các phép toán như: cộng, trừ, nhân, chia, v.v. được chuyển đổi sang mức bit giúp xử lý nhanh hơn và tiết kiệm điện năng.

Các toán tử bitwise được sử dụng trong lập trình C để thực hiện các hoạt động ở mức bit.

OperatorsMeaning of operators
&Bitwise AND
|Bitwise OR
^Bitwise exclusive OR
~Bitwise complement
<<Shift left
>>Shift right

Truy cập toán tử bitwise trong C để tìm hiểu thêm.

Các nhà khai thác khác

Toán tử dấu phẩy

Toán tử dấu phẩy được sử dụng để liên kết các biểu thức có liên quan với nhau. Ví dụ:

int a, c = 5, d;

Toán tử sizeof

Đây sizeoflà một toán tử một ngôi trả về kích thước của dữ liệu (hằng số, biến, mảng, cấu trúc, v.v.).

Ví dụ 6: Toán tử sizeof

#include <stdio.h>
int main()
{
    int a;
    float b;
    double c;
    char d;
    printf("Size of int=%lu bytes\n",sizeof(a));
    printf("Size of float=%lu bytes\n",sizeof(b));
    printf("Size of double=%lu bytes\n",sizeof(c));
    printf("Size of char=%lu byte\n",sizeof(d));

    return 0;
}

Đầu ra

Size of int = 4 bytes
Size of float = 4 bytes
Size of double = 8 bytes
Size of char = 1 byte

Nhà khai thác khác như nhà điều hành ternary ?:, nhà điều hành tài liệu tham khảo &, toán tử tham chiếu *và điều hành lựa chọn thành viên  -> sẽ được thảo luận trong bài hướng dẫn sau.









Gõ tìm kiếm nhanh...