为什么"n*n"在循环的第一个瞬间变为4?对我来说它应该是1*1.相反,它来自2*2.
请给我一个简单的答案,因为我还是初学者:)
#include <iostream>
using namespace std;
int main(){
int n =1 , *p;
p = &n;
char aString[] = {"student"};
for (int i = 0; i<5; i++)
cout<< "i = "<< i << "n*n = "<<n*n<< "n++ = "<< n++<< " *p "<<endl;
system ("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
除了一些非常特殊的情况,例如&&和||之外,表达式中元素的评估顺序是未指定的 等等
写作:
cout<< "i = "<< i << "n*n = "<<n*n<< "n++ = "<< n++<< " *p "<<endl;
Run Code Online (Sandbox Code Playgroud)
你假设一个订单,特别是n ++是最后评估的.
要解决此问题,您可以将演绎分为两部分:
cout<< "i = "<< i << "n*n = "<<n*n<< "n++ = "<< n<< " *p "<<endl;
n++;
Run Code Online (Sandbox Code Playgroud)