【发布时间】:2014-10-31 12:51:48
【问题描述】:
这可能是一个愚蠢的问题,但我就是想不通。它与 n++ 和 ++n 之间的差异有关(我以为我理解但显然不是)。
#include <stdio.h>
#include <math.h>
long algorithmA(int n);
long algorithmB(int n);
int main(){
long A, B;
A = B = 0;
int n = 1;
while(A >= B){
A = algorithmA(n);
B = algorithmB(n);
n++;
}
printf("At n = %d, Algorithm A performs in %ld seconds & "
"Algorithm B performs in %ld seconds.", n, A, B);
}
long algorithmA(int n){
return pow(n,4) * 86400 * 4;
}
long algorithmB(int n){
return pow(3,n);
}
在这里,您可能会知道我正在尝试查看算法 A 在什么时候优于算法 B。函数和时间单位是在作业问题中提供给我的。
无论如何,我一直认为“++”的顺序在 while 循环结束时无关紧要。但是如果我用 ++n 而不是 n++,我会得到错误的答案。谁能解释一下原因?
编辑:嗯,它显示 24 和 ++n 和 25 和 n++,但它一定是出于另一个原因。因为我现在才检查,没有任何区别。感谢你们的耐心和时间,我只是希望我知道我做了什么!
【问题讨论】:
-
不确定是否直接重复(不同的语言),但我敢打赌问题是一样的。 Is there a difference between x++ and ++x.
-
@mlwn 我认为你搞错了。
-
@Takendarkk 大声笑..刚刚删除它.. :) 输入错误..
-
单独操作,不使用其“结果”时,没有区别。只有使用结果(如
myArray[n++])才会有所不同,而区别在于您是在递增之前还是之后有效地获取数组元素。 -
这些之间不应该有任何区别,因为增量没有在表达式中使用。你有其他显示的输出吗?
标签: c increment post-increment pre-increment