#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作为&#39;指针&#39;?我的意思是它不能只使用&#39; ptr&#39;?
变量&#39; * ptr&#39;加载数组&#39; a []&#39;。
答案 0 :(得分:0)
这里指针ptr指向数组的第一个元素。如果您将其声明为常规变量,则只能为其分配一个值。但现在你可以分配一个数组元素的地址&amp;通过递增或递减指针的值来访问所有其他元素,如果它被声明为变量,那么你将无法做到这一点。
指针ptr指向数组的第一个元素。因此,如果你写ptr [1],它指向数组的第二个元素(因为数组是'0'索引的)。您也可以访问其他元素。