C77*_*431 1 c++ operator-precedence pre-increment post-increment
敬礼..
我有一个不寻常的问题. 在MSDN库的这个表中,我们可以看到()的优先级高于++(预增量).但是当我运行这段代码时,似乎++(prefex)的优先级更高:
int main()
{
int a=3,b=2,x;
x=++a + (a-b);
cout<<"x= "<<x;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
答案是:
X = 6
仅在prefex ++中发生这种情况,并且按照我预期的后增量工作.
有什么缘故吗?问候..
int main()
{
int a=3,b=2,x;
x=a++ + (a-b);
cout<<"x= "<<x;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
X = 4
(我使用的是Microsoft Visual C++ 2010快递)
这里有两个误解.
第一种:在表中,()引用函数调用,而不是用于分组的括号.用于分组括号不具有一定优先级的操作,但对于执行比由操作者给定的优先级不同解释的装置.因此,无论运算符的优先级如何,括号中的任何内容都被视为一个单元.
第二种:运算符优先级是指运算符在解析其他模糊语法时所采用的优先顺序; 它没有提到副作用的时间顺序.因此,前缀++总是在计算表达式之前增加值,posfix ++总是在计算表达式之后增加值,而不依赖于语法运算符优先级.
| 归档时间: |
|
| 查看次数: |
1279 次 |
| 最近记录: |