在我粘貼下面的程序中,我只是想知道爲什麼指針「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