左結(jié)合性和右結(jié)合性 左結(jié)合和右結(jié)合的區(qū)別?
左結(jié)合和右結(jié)合的區(qū)別?左聯(lián)想:從左到右操作;右聯(lián)想:從右到左操作。例如,算術(shù)運(yùn)算符的關(guān)聯(lián)性是從左到右,即從左到右。如果存在表達(dá)式X-Y Z,則Y應(yīng)與“-”組合以執(zhí)行X-Y運(yùn)算,然后執(zhí)行Z運(yùn)算。這種從左
左結(jié)合和右結(jié)合的區(qū)別?
左聯(lián)想:從左到右操作;
右聯(lián)想:從右到左操作。
例如,算術(shù)運(yùn)算符的關(guān)聯(lián)性是從左到右,即從左到右。如果存在表達(dá)式X-Y Z,則Y應(yīng)與“-”組合以執(zhí)行X-Y運(yùn)算,然后執(zhí)行Z運(yùn)算。這種從左到右的組合方向稱為“左組合”。
從右到左的組合方向稱為“右組合”。最典型的右聯(lián)想算子是賦值算子。例如,x=y=Z,由于“=”的正確組合,應(yīng)首先執(zhí)行y=Z,然后執(zhí)行x=(y=Z)。
如何理解C語言的左結(jié)合和右結(jié)合?
右組合表示如果兩個(gè)具有相同優(yōu)先級(jí)的連續(xù)操作符號(hào)相鄰,則相當(dāng)于右側(cè)的一個(gè)括號(hào)。例如,這相當(dāng)于右括號(hào),或a=b=C,相當(dāng)于a=(b=C)右括號(hào),左組合相當(dāng)于左括號(hào)。例如,bc等同于(ab)C,當(dāng)然,這沒有任何區(qū)別。但這是不同的:A/B/C相當(dāng)于(A/B)/C。如果除號(hào)組合正確,這里的結(jié)果將不同
1。簡而言之,它從表達(dá)式的右側(cè)開始;只有具有相同優(yōu)先級(jí)的運(yùn)算符才具有“從左到右”或“從右到左”的組合。2Exp:inta=1,B=10,C=30,inta=a*B,C因?yàn)?的優(yōu)先級(jí)比操作符高,所以先計(jì)算a*B(左側(cè)先計(jì)算,不考慮關(guān)聯(lián)性),然后計(jì)算10,C的結(jié)果是a=300exp(同一優(yōu)先級(jí)操作符根據(jù)關(guān)聯(lián)性進(jìn)行操作):inta,B=1,C=8A=b=C,賦值運(yùn)算符的結(jié)合性是從右向左的,即a=(b=C),結(jié)果是b=8,a=8(錯(cuò)誤答案:如果從左向右組合,a=1)