Re: [問題] 我想請問結合律

看板C_and_CPP (C/C++)作者 (冰心無情)時間16年前 (2008/09/09 02:27), 編輯推噓3(3010)
留言13則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《king19880326 (OK的啦~我都可以接受)》之銘言: : → king19880326:那左結合跟右結合呢?? 又是什麼樣的運算子有這種特性 09/09 01:15 : → king19880326:?? 感謝感謝 09/09 01:15 左結合和右結合是說 A op B op C 這樣的式子要先算左半邊還是右半邊 例如說 a-b-c 是 (a-b)-c, 不是 a-(b-c) 這樣叫左結合 右結合相反, a=b=c 是 a=(b=c) c++裡面有assignment的都是右結合 ex: = += -= *= ...etc 剩下的binary operator好像都是左結合 (不太確定..有漏掉的請補充orz) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.156.17 ※ 編輯: zerodevil 來自: 122.116.156.17 (09/09 02:27)

09/09 11:33, , 1F
只有二元運算子有左結合又結合嗎??
09/09 11:33, 1F

09/09 11:34, , 2F
expr1 ? expr2 : expr3 這種呢??
09/09 11:34, 2F

09/09 20:08, , 3F
上面這種可以利用類似括號的技巧來配對
09/09 20:08, 3F

09/09 20:09, , 4F
不過我記得 a?b:c?d:e 好像是 a?b:(c?d:e)
09/09 20:09, 4F

09/09 20:10, , 5F
查了一下 ?:是右結合 所以是樓上寫的沒錯
09/09 20:10, 5F

09/09 20:11, , 6F
另外擺在前面的單元運算子都是右結合 例如**ptr是*(*ptr)
09/09 20:11, 6F

09/09 20:12, , 7F
(這種東西也沒有左結合的道理嘛XD)
09/09 20:12, 7F

09/10 02:15, , 8F
該是兩個都成立的情況之下, 選哪一種作為解釋
09/10 02:15, 8F

09/10 02:16, , 9F
比如說a+b+c可以看成(a+b)+c或a+(b+c), 所以選定一個
09/10 02:16, 9F

09/10 02:17, , 10F
又a=b=c可以看成(a=b)=c或是a=(b=c), 所以選左邊
09/10 02:17, 10F

09/10 02:18, , 11F
而**p不可能看成(**)p[未定義],所以只能看成*(*p)
09/10 02:18, 11F

09/10 02:19, , 12F
不過如果拿來解釋a++++,++++a,++a++又怪怪的,請強者
09/10 02:19, 12F

09/10 02:19, , 13F
補充<(__)>
09/10 02:19, 13F
文章代碼(AID): #18nMvxpU (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #18nMvxpU (C_and_CPP)