Re: [請益] 先++ 後++

看板PHP作者 (knem)時間16年前 (2008/04/02 19:02), 編輯推噓4(405)
留言9則, 7人參與, 最新討論串3/3 (看更多)
※ 引述《lslong (龍龍)》之銘言: : ※ 引述《knme (knem)》之銘言: : : 請問版上的神人們 : : 有誰知道... : : 為甚麼.... : : --- PHP 版本 ----- : : $i = 0; : : $i = $i++ - ++$i; : 一步步拆開來解 : 先遇到$i++ : 所以公式變 : $i = 0 - ++$i : 然後++的關係 : $i變1 : 在遇到++i : $i =2 : 代入公式 : $i = 0 - 2 : answer:-2 : : echo $i; // i is -2 : : --- C 版本 ----- : : int i=0; : : i = i++ - ++i; : : printf("%d",i); // i is 1 : : P.S. : : JAVA 結果也同PHP : C語言請其他高手補足吧.. 兩者看的方式不太一樣 C是用整行來看 ++i, 處理這行之前, 先將i加1 i++, 處理這行之後, 再將i加1 因此會變成 i = 0; ++i; i = i - i; i++; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.39.218

04/02 19:34, , 1F
C語言嚴格來說並不一定是這樣寫 標準規定它是未定義行為
04/02 19:34, 1F

04/02 19:34, , 2F
也就是各家做出來的結果可能會不同
04/02 19:34, 2F

04/02 19:54, , 3F
瞭解~
04/02 19:54, 3F

04/02 21:51, , 4F
這 C standard 應該有吧?
04/02 21:51, 4F

04/02 22:43, , 5F
In fact it's NOT well-defined
04/02 22:43, 5F

04/03 02:18, , 6F
我記得不同平台結果會不同
04/03 02:18, 6F

04/03 02:18, , 7F
所以結果不一定@@
04/03 02:18, 7F

04/04 22:16, , 8F
C語言並未定義哪一個要先運算http://tinyurl.com/5foped
04/04 22:16, 8F

04/05 14:08, , 9F
簡單明瞭推
04/05 14:08, 9F
文章代碼(AID): #17ysV77k (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
請益
2
6
文章代碼(AID): #17ysV77k (PHP)