自增运算符的困惑,求指导
int j=0;
int i=j++;
我知道这个运算是先把j的值给i,再把j自加。
但是现在有点疑惑,++运算符的优先级不是比=运算符的优先级高吗?这样不是矛盾吗?
[解决办法]
#如1楼所说,这里不是赋值,是初始化
改成如下再讨论
int i;
i=j++;
那么这里优先级的作用,是使得这行不必写成 i=(j++);
如果=的优先级高的话,则会等价于(i=j)++;
[解决办法]
这个里面++运算符确实是先运算了,但是j++的意思是在表达式中先去j的值用,然后j的值再自增一,
#include<iostream.h>
int main()
{
int j=0;
int i=(j++);
cout<<i<<endl;
}
对j++加括号,使其先运算,输出值依然是0。