求助,关于C++运算符结合性自右向左的问题
2个回答
展开全部
运算符的结合性 即运算符的结合方向。
其实通俗理解就是当一个存在1个以上的同级运算符表达式 哪个运算符先运算的问题
例如:
int i = 2*2+1*8/4;
根据运算符的优先级别我们知道此时上面的这个表达式应该先做“ *”和“/”的运算发现没有这就存在了2个同级运算符号了。 如果没有运算符的结合方向的话那你说说 我们先计算哪个?? 2*2 ? 还是 1*3 还是3/4 这个不就乱了吗!是不是
我们知道* /都是属于算术运算符号了 它们的结合性都是:自左向右,也就是意味着先运算此时表达式里最走边的 也就是*号运算符了
int i = 4+1*8/4;
int i = 4+8/4;到了这一步不存在优先级同样的了 这个时候就是优先级别来决定哪个先计算
int i = 4+2;
int i = 6;
最后i = 6;
至于你提出的自右向左应该是说的‘’=‘’赋值运算符号吧.
说白了就是“哪个先运算的事”
优先级:决定哪个运算符先运算
结合性:就是当一个存在1个以上的同级运算符表达式 哪个运算符先运算的问题
就和小学学的数学是一个道理。概念的区分理解 会对我们编程有大的帮助。
谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询