作者king19880326 (OK的啦~我都可以接受)
看板C_and_CPP
標題[問題] 我想請問結合律
時間Mon Sep 8 16:58:39 2008
已爬文
int i = 0;
i++++; // error
++++i;
++i++; // error
看書上是說, ++是left-associative
我想應該跟這部份有關
不過還是不大理解
left associative是指說 一個expression裡面有出現不只一項相同的運算子
就要從最左邊的開始解讀嗎 ??
那這樣的話 ++++i 解讀成 (++)(++i) 似乎有點怪 @@>
這邊實在搞不大清楚
感謝各位大大解釋 <(__)>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.233.243.208
1F:推 SansWord:好像要看你的compiler 09/08 18:03
2F:→ king19880326:不大懂, 可以請您再多說一點嗎?? 09/08 18:33
3F:→ lion0208:compile 怎麼解釋就是怎樣囉... 09/08 19:34
4F:→ lion0208: \r 09/08 19:35
5F:推 sunneo:就是未定義行為吧 09/08 19:59
6F:→ sunneo:i++++ error是說的過去的 因為i++回傳的是一個暫時值 09/08 19:59
7F:→ sunneo:可以看指令優先權的地方 09/08 20:01
8F:→ sunneo:不過之前這討論串在oohay的堅持下有一大串的熱烈迴響與討論 09/08 20:01
9F:→ sunneo:在joy830的惡搞下有快樂的故事.雖然那個咖啡工讀生已水桶了 09/08 20:02
10F:→ sunneo:文章代碼#17eqfFiq或者標題"面試遇到的一個問題" 09/08 20:09
11F:推 bugmans:應該要走入歷史的題目卻一再出現 09/08 20:53
12F:推 kewang:置底十誡...... 09/08 21:04
13F:→ LiloHuang:為什麼這種問題還是會一再的出現...真的是月經文 09/08 21:17
14F:→ MOONRAKER:惡搞下有快樂的故事 XDDDDDDD 09/08 22:08
15F:推 zerodevil:這三個case都有明確定義啊.. 09/08 23:03
16F:→ zerodevil:兩個error, 一個i=2 09/08 23:03
17F:→ zerodevil:不是看到一串++--就undefined... 09/08 23:04
18F:推 zerodevil:順便回原po的問題 unary operator沒有associativity 09/08 23:07
19F:→ zerodevil:那本書可以丟了XD 09/08 23:07
20F:→ king19880326:那結合律的意思是@@?? 感謝感謝<(__)> 09/09 00:06
21F:推 zerodevil:(x+y)+z=x+(y+z)這樣的性質 09/09 00:15
22F:→ king19880326:那左結合跟右結合呢?? 又是什麼樣的運算子有這種特性 09/09 01:15
23F:→ king19880326:?? 感謝感謝 09/09 01:15
24F:→ jaw109:真有興趣的話, 你可以翻一下K&R那一本, 後面有grammer 09/09 13:05
25F:→ king19880326:感謝大大指點<(__)> 09/09 13:44