訂購事宜

以下程式碼中存在溢位

int x = int.MaxValue;
Console.WriteLine(x + x + 1L);  //prints -1

而在以下程式碼中沒有溢位

int x = int.MaxValue;
Console.WriteLine(x + 1L + x);  //prints 4294967295

這是由於操作的從左到右排序。在第一個程式碼片段中,x + x 溢位,之後它變成了 long。另一方面,x + 1L 變為 long,然後將 x 新增到此值。