# D語言運算符優先級

Operator

Postfix

() [] -> . ++ - -

Left to right

Unary

+ - ! ~ ++ - - (type)* & sizeof

Right to left

Multiplicative

* / %

Left to right

+ -

Left to right

Shift

<< >>

Left to right

Relational

< <= > >=

Left to right

Equality

== !=

Left to right

Bitwise AND

Left to right

Bitwise XOR

Left to right

Bitwise OR

Left to right

Logical AND

&&

Left to right

Logical OR

||

Left to right

Conditional

?:

Right to left

Assignment

= += -= *= /= %=>>= <<= &= ^= |=

Right to left

Comma

Left to right

## 例子

import std.stdio; int main(string[] args) { int a = 20; int b = 10; int c = 15; int d = 5; int e; e = (a + b) * c / d; // ( 30 * 15 ) / 5 writefln("Value of (a + b) * c / d is : %d
", e ); e = ((a + b) * c) / d; // (30 * 15 ) / 5 writefln("Value of ((a + b) * c) / d is : %d
" , e ); e = (a + b) * (c / d); // (30) * (15/5) writefln("Value of (a + b) * (c / d) is : %d
", e ); e = a + (b * c) / d; // 20 + (150/5) writefln("Value of a + (b * c) / d is : %d
" , e ); return 0; }

Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90
Value of a + (b * c) / d is : 50