程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#陷阱:int i = 10; i += i++; i = ?

C#陷阱:int i = 10; i += i++; i = ?

編輯:關於C語言
參加某公司的筆試時的一道題目:int i = 10; i += i++; i = ?。當時我寫了21。但當我在C#中寫了如下代碼測試時

static void Main(string[] args)
{
int i = 10;
i += i++;
Console.WriteLine(i);
Console.Read();
}

編譯器告訴我,結果是20。為什麼!我錯了嗎?我開始納悶了。我趕緊用VC(Visual Studio.Net2003)重新編了一段測試代碼,如下:

int _tmain()
{
int i = 10;
i += i++;
Console::WriteLine(i);
Console::Read();
return 0;
}

這次,結果是21。奇怪了啊,為什麼同樣是i += i++,其結果是不一樣的呢?

最終結論:語言差異

C# does have explicit rules around this behavior. (left to right)
C++ does not (problem of the C++ language, not the compiler)
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved