C# i=0;i=i++,i的值是多少?。本站提示廣大學習愛好者:(C# i=0;i=i++,i的值是多少?)文章只能為提供參考,不一定能成為您想要的結果。以下是C# i=0;i=i++,i的值是多少?正文
參考頁面:
http://www.yuanjiaocheng.net/entity/update-entity.html
http://www.yuanjiaocheng.net/entity/delete-entity.html
http://www.yuanjiaocheng.net/entity/add-entity-graph.html
http://www.yuanjiaocheng.net/entity/update-entity-graph.html
http://www.yuanjiaocheng.net/ASPNET-CORE/first.html
昨天看群裡dalao們聊天,有一團體出來問這個問題
這個題應該是挺罕見的
int i = 0, t;
for(t = 0;t <= 5;t++)
{
i = i++;
Console.WriteLine(i);
}
大佬說for是個攪擾項,去掉也一樣
int i = 0;
Console.WriteLine(i = i++);
Console.WriteLine(i = i++);
Console.WriteLine(i = i++);
群外面就很多人開端說就是會添加,我也覺得會添加,
事先覺得雖然i先被賦值等於0,之後i的值是會添加,第一個輸入等於1。
然後有人跑了一遍,後果是輸入了一堆0
在停止表達式處置的時分,首先會對i++這樣的運算停止處置,就是說,第一步不是賦值
為i創立i',然後讓i自增。
處置完i++之後,就會停止表達式的更低級的運算處置,但參與運算的是i',
這個時分,將i'賦值給i 。最後,釋放零碎所創立的變量,如i'。
然後還有一道晉級版的
關於++i的處置,則與i++恰恰相反,零碎首先會給i停止自增處置,然後才會創立i'
int i = 0;
Console.WriteLine(i = i++ + ++i);
Console.WriteLine(i = i++ + ++i);
第一個輸入的答案是2
第二個是6
第一個就是0+2
第二個就是2+4
老手初學,哪裡不對還請dalao們指出
轉載請聯絡