示例1:
while(npw(x,i)/ftr(i)>0.00001) {
t+=npw(x,i)/ftr(i);
i++; //normal increase i
}
或
while(npw(x,i)/ftr(i)>0.00001)
t+=npw(x,i++)/ftr(i++); //increase i inside function's parameters
示例 2:(x 是“ float ”)
int n=(int)x; //normal cast
printf("x! = %.0lf\n",ftr(n));
或
printf("x! = %.0lf\n",ftr((int)x)); //directly cast inside function parameters
最佳答案
t+=npw(x,i++)/ftr(i++);
可能不会做您期望它做的任何事情,因为两个增量操作的执行顺序未指定。 IE。您不知道哪个函数将获得递增的 i
,以及哪个函数将获得递增的 i
作为参数。
此外,无论哪个 i
先递增,它都将与前一段代码完全不同,其中 i
仅递增一次。
其他示例看起来是正确的。最后两段代码仅在语义上不同。
关于C - Code::Blocks 13.12:哪一个可以正常工作,或者两者都可以?两者有区别吗?还是C标准允许的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28579370/