有关是否在所有计算完成前,不更改外部变量??
实例如下:
int iTest1=0;int iTest2=0;
int f1(){iTest1++;return iTest1;}
int f2(){iTest2+=iTest1;return iTest2; }
如果:
int i=f1()+f2();此时,iTest2=0;
如果:
if(f1()&&f2());此时,iTest2=1;
是否在所有计算完成前,不更改外部变量??
[解决办法]
楼主运行一下看看,貌似跟你的结论有出入啊
#include<stdio.h>int iTest1=0;int iTest2=0;int f1(){ iTest1++; return iTest1;}int f2(){ iTest2 += iTest1; return iTest2; }int main(){ int i=f1()+f2(); //此时,iTest2=0; //if(f1()&&f2()); //此时,iTest2=1; printf("iTest1=%d\n", iTest1); printf("iTest2=%d\n", iTest2); return 0; }
[解决办法]
你要考虑到&&这个符号,从左到右执行,如果左边不对,右边的就不执行了
[解决办法]