[問題] 請問一個C語法的問題

看板C_and_CPP (C/C++)作者 (fffff)時間16年前 (2009/10/07 23:38), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/1
#include <stdio.h> void main(){ int a , b , c ; b = 1 ; c = 5 ; a = --b++ ;//compiler 會 error printf ("%d\n", a); printf ("%d\n", b); printf ("%d\n", c); } 依照優先權 應該是 a = --(b++) 但是為什麼當a = (--b)++ 時是對的 當a = --(b++) 時卻是錯的 煩問高手解答一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.213.167

10/07 23:41, , 1F
L-value , R-value
10/07 23:41, 1F

10/07 23:43, , 2F
為什麼 (--b)++ 不會錯?
10/07 23:43, 2F

10/07 23:51, , 3F
精華區: z->3->2->5 :)
10/07 23:51, 3F

10/07 23:52, , 4F
不管有無括號,都在兩個 seq. point 間修改了 b 兩次?
10/07 23:52, 4F

10/07 23:56, , 5F
說錯了 Orz 一個修改右值,一個修改了左值兩次
10/07 23:56, 5F

10/08 00:10, , 6F
我懂了 原來精華區就有了 感謝各位
10/08 00:10, 6F
文章代碼(AID): #1ApBO74O (C_and_CPP)
文章代碼(AID): #1ApBO74O (C_and_CPP)