C++中,j最后输出为100?为什么?
++和=的优先级是否和编译器有关?
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
int j = 0;
for (int i = 0; i< 100; i++)
cout << j<< endl;
return 0;
}
开什么玩笑,j都没动过,难道不一直是0?
C++中,++和=的优先级是否和编译器有关?无关 ++的优先级>=
C++中,j最后输出为100? j的值应该一直为1
这个问题好像本身有问题吧。。。j的值都没变过,你说的是i?如果说的是i,i的值最后也不会是100,而是99
首先优先级指定和编译器无关,++的一定是大于=的,其次楼主的代码不完整吧。。
代码不完整吧,单说优先级的话,++优先级大于=的
=是单目运算符,=是赋值运算符,单目运算符优先级大于赋值运算符
实在不好意思,main函数中的空行少了一句:j=j++;
完整代码如下:
#include
#include
using namespace std;
int main()
{
int j = 0;
for (int i = 0; i < 100; i++)
j=j++;
cout << j << endl;
return 0;
}
我用visual studio 2013版本编译运行出来的结果是j=100,但是用网上在线C++编译器计算出来是0
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
int j = 0;
for (int i = 0; i < 100; i++)
j=j++;
cout << j << endl;
return 0;
}