2016-09-27 7 views
-3
#include <stdio.h> 
void main() 
{ 
int a[] = {10,20,30,40,50,60,70,80,90,100}; 
int k,m,i,*ptr; 
k=m=0; 
ptr=a; 
for(i=0; i<10; i+=2) 
{ 
    k+=ptr[i]; 
    m+=ptr[i+1]; 
} 
printf("***** result ***** \n\n"); 
printf("(10+30+50+70+90)=%d\n",k); //250 
printf("(20+40+60+80+100)=%d\n",m); //300 
} 

「ポインタ」として* ptrを使用する理由は何ですか?私はそれがちょうど 'ptr'を使用して実行することはできないという意味ですか?'C'なぜ変数を 'ポインタ'として宣言しますか?

変数 '* ptr'が配列 'a []'をどのようにロードするかを示します。

+4

このコードを見る前に、ポインタを調べる必要があります。 – LPs

答えて

0

ポインタptrは配列の最初の要素を指します。通常の変数として宣言した場合は、1つの値しか代入できません。しかし、配列の要素のアドレス&には、変数として宣言された場合にはできないポインタの値をインクリメントまたはデクリメントすることによって、他のすべての要素にアクセスできるようになりました。

ポインタptrは配列の最初の要素を指します。したがって、ptr [1]を書くと、配列の2番目の要素を指しています(配列は '0'でインデックス付けされているため)。他の要素にもアクセスできます。

関連する問題