私は以下のペーストしたプログラムで、なぜポインタ "p"がforループ内で初期化されたのか疑問に思っていましたか?私はforループの条件を次のように読みとることに慣れています。この値に達するまでこれほど多くを増やしてください。したがって、終了条件を決定せず、そこでの各反復中に増分されていない別の変数を持つことは奇妙に思えます。forループ内でこの重要でない変数が初期化されるのはなぜですか?
私はちょうどp = &を[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
簡単にテストすることができます。ループの外側にp =&a [0]を移動し、出力が変化するかどうかを確認してください。 –
Yah、出力が同じであることがわかります。私は何の違いがあったとしても私が知らなかった利益があるかどうか疑問に思っていただけです。 – bqui56