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



Thứ tự ưu tiên toán tử trong C xác định cách biểu thức được tính toán. Ví dụ, toán tử nhân có quyền ưu tiên hơn toán tử cộng, và nó được thực hiện trước.

Ví dụ, x = 7 + 3 * 2; ở đây, x được gán giá trị 13, chứ không phải 20 bởi vì toán tử * có quyền ưu tiên cao hơn toán tử +, vì thế đầu tiên nó thực hiện phép nhân 3 * 2 và sau đó thêm với 7.

Bảng dưới đây liệt kê thứ tự ưu tiên của các toán tử. Các toán tử với quyền ưu tiên cao nhất xuất hiện trên cùng của bảng, và các toán tử có quyền ưu tiên thấp nhất thì ở bên dưới cùng của bảng. Trong một biểu thức, các toán tử có quyền ưu tiên cao nhất được tính toán đầu tiên.

Loại  Toán tử  Thứ tự ưu tiên 
Postfix  () [] -> . ++ - -   Trái sang phải 
Unary  + - ! ~ ++ - - (type)* & sizeof  Phải sang trái 
Tính nhân   * / %  Trái sang phải 
Tính cộng   + -  Trái sang phải 
Dịch chuyển   << >>  Trái sang phải 
Quan hệ   < <= > >=  Trái sang phải 
Cân bằng   == !=  Trái sang phải 
Phép AND bit  Trái sang phải 
Phép XOR bit  Trái sang phải 
Phép OR bit  Trái sang phải 
Phép AND logic  &&  Trái sang phải 
Phép OR logic  ||  Trái sang phải 
Điều kiện  ?:  Phải sang trái 
Gán  = += -= *= /= %=>>= <<= &= ^= |=  Phải sang trái 
Dấu phảy  Trái sang phải 
Quảng cáo

Ví dụ

Bạn xem xét ví dụ sau để hiểu về thứ tự ưu tiên các toán tử trong ngôn ngữ C:

#include <stdio.h>

main()
{
   int a = 35;
   int b = 14;
   int c = 5;
   int d = 6;
   int e;
 
   e = (a + b) * c / d;      
   printf("Gia tri cua bieu thuc (a + b) * c / d la: %d\n",  e );

   e = ((a + b) * c) / d;    
   printf("Gia tri cua bieu thuc ((a + b) * c) / d la: %d\n" ,  e );

   e = (a + b) * (c / d);   
   printf("Gia tri cua bieu thuc (a + b) * (c / d) la: %d\n",  e );

   e = a + (b * c) / d;     
   printf("Gia tri cua bieu thuc a + (b * c) / d la: %d\n" ,  e );
   printf("===========================\n");
   printf("VietJack chuc cac ban hoc tot! \n");
  
   return 0;
}

Biên dịch và thực thi chương trình C trên sẽ cho kết quả sau:

Thứ tự ưu tiên toán tử trong C

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học lập trình C phổ biến khác tại VietJack:


toan_tu_trong_c.jsp

Tài liệu giáo viên