在我粘贴下面的程序中,我只是想知道为什么指针“p”在for循环中被初始化了?我习惯于读取for循环的条件为:从变量的这个值开始;直到它达到这个值;增加这一点。所以看起来奇怪的是,有另一个变量不能确定结束条件,并且在每次迭代过程中都没有增加。为什么在for循环中初始化这个无关紧要的变量?
我只是把p = & a [0];在for循环之上并留下其余部分。这仅仅是一种文体的东西,还是在处理事物的方式上有差异,取决于你初始化p的位置?一种方式比另一种更受欢迎吗?
#include <stdio.h>
#define PRD(a) printf("%d", (a))
int a[]={0, 1, 2, 3, 4};
int main()
{
int i;
int* p;
for (p=&a[0], i=0; i<=4; i++) PRD(p[i]);
return 0;
}
因为谁决定把它放在那里? :P – Benjamin 2011-12-24 03:02:42
易于测试。将p =&a [0]移到循环外部,查看输出是否更改... – 2011-12-24 03:03:13
是的,我可以看到输出是相同的。我只是想知道是否有一个我没有意识到的好处 - 如果有任何区别的话。 – bqui56 2011-12-24 03:05:31