读书人

新手 后置++和!的优先级

发布时间: 2012-02-23 22:01:35 作者: rapoo

新手求助 后置++和!的优先级
优先级表中后置++优先级高于!
但在这个程序中
#include <iostream>
using namespace std;
int main()
{
int a,x;
for( a = 0, x = 0; a <=1 && !x++; a++)
{
a++;
}
cout << a << x << endl;
return 0;
}

输出结果是21. !x++ 中先计算了!x
新手求助这是什么原因啊

[解决办法]
结果 a = 2, x = 1

因为你的 a++ 做了两次 x ++ 只有一次

[解决办法]
这是最基本的语法问题,找本C++书看就OK了。看运算符那块。
[解决办法]
前置++指在表达式处先+1,后置++指先取值后再+1,这很好理解,因为你输出时是另一个表达式,不管前置还是后置都已+1了。
如 int a=0,b=0;
int c=a++;
int d=++b;
int e=a,f=b;
cout<<c<<" "<<d<<" "<<e<<" "<<f;

应该是 0 1 1 1

读书人网 >C++ Builder

热点推荐