Gi¸o tr×nh tin häc c¬ së II - N
gôn ngữ
C
25
Trong C yêu cầu phải dùng cặp ngoặc () bao tên kiểu_mới, còn C++ thì với những
kiểu_mới là tên kiểu đơn giản thì không bắt buộc phải dùng cặp (), ví dụ trong C++ bạn
có thể dùng phép chuyển kiểu như int (a).
l. Độ ưu tiên các toán tử
Trong biểu thức có thể có nhiều toán tử, vậy điều gì giúp cho chương trình dịch thực
hiện các toán tử một cách đúng đắn?. Trong các biểu thức nếu có các cặp (), thì nó sẽ
quyết định thứ tự thực hiện các phép toán: trong ngoặc trước, ngoài ngoặc sau. Nhưng có
những khả năng dấu ngoặc không có hoặc không đủ để quyết định tất cả các trường hợp
thì khi đó C thực hiện các toán tử căn cứ vào độ ưu tiên của chúng và sử dụng một số quy
tắc về các toán tử (ví dụ như khi chúng cùng độ ưu tiên thì thực hiện từ trái qua phải hay
từ phải qua trái). Ví dụ với các phép toán số học +, - có cùng độ ưu tiên, nên nếu
trong
biểu thức có nhiều phép toán +, - và không có các dấu ngoặc quy định thứ tự thực hiện thì
chúng sẽ được thực hiện từ trái qua phải. Nhưng với phép toán ++, hay các phép gán,..
chẳng hạn như
++++ a; hoặc a=b=c=d trình tự kết hợp lại từ phải qua trái.
Sau đây là bảng các toán tử và độ ưu tiên của chúng, các phép toán trên cùng dòng
(thứ tự) có cùng độ ưu tiên, các toán tử trên dòng có thứ tự nhỏ hơn sẽ có độ ưu tiên cao
hơn, trong bảng này có một số toán tử không được mô tả trong phần các phép toán như [],
(), ., -> chúng sẽ được mô tả trong các phần thích hợp.
Chia sẻ với bạn bè của bạn: