Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
int a[10],sum,*p; sum=0; for(p=&a[0];p<&a[10];p++) sum += *p; printf("%d",sum)
こんにちは、ターボ c、特にポインタの初心者です。このプログラムでポインターがどのように使用されたかを誰かに説明してもらえますか? 前もって感謝します。
プログラムがどのように機能するかは知っていますが、理解できないのは、なぜプログラムがポインターと「&」記号を使用したのかということです。ありがとう。
これはCのポインターの実例ですが、このコードはポインターを使用せずに記述することもできます。ここ
p=&a[0]
^配列の最初の値のメモリアドレスを格納しますa。そして、Forループは、ポインタが最後の配列値のメモリアドレスを格納するまで実行されますa[10]。
a
a[10]
sum += *p;
上記のステートメントの^は、*pポインタが指すメモリアドレスの値を表しますp。たとえばp、現在はを指していa[0]ます。次に、の値a[0]がに追加されsumます。Forループの次の反復では、の値がp増加し、を指しa[1]ます。
*p
p
a[0]
sum
a[1]