作者lexus7310 (fffff)
看板C_and_CPP
標題[問題] 請問一個C語法的問題
時間Wed Oct 7 23:38:39 2009
#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
1F:→ dendrobium:L-value , R-value 10/07 23:41
2F:→ firose:為什麼 (--b)++ 不會錯? 10/07 23:43
3F:推 VictorTom:: z->3->2->5 :) 10/07 23:51
4F:→ firose:不管有無括號,都在兩個 seq. point 間修改了 b 兩次? 10/07 23:52
5F:→ firose:說錯了 Orz 一個修改右值,一個修改了左值兩次 10/07 23:56
6F:→ lexus7310:我懂了 原來就有了 感謝各位 10/08 00:10