指针函数程序 指针函数要怎么看🥺

#include <stdio.h>
#include <stdlib.h>
int main()
{ int n,i,y,p;
scanf("%d",&n);
p=(int
)malloc(sizeof(int)*n);
for(i=0;i<n;i++)scanf("%d",p+i);
y=p[0];
while(1)
{ for(i=1;i<n;i++) if(y%p[i]!=0)break;
if(i<n)
y+=p[0];
else
break;
}
printf("y=%d\n",y);
}

这个指针函数怎么看呀 好多地方看不懂 谁能帮忙解释一下每个语句🥺

哪里有指针函数,就是最基本的int类型的指针。
你可以把指针理解为内存地址的首地址,然后mallo后面参数就是这个地址中申请的长度,先申请空间,这里定义成int类型,然后大小是n就是存储n个int类型的空间,
然后赋值这里用的scanf,指针的p 其实和定义一个int a;然后取a的地址一样&a;而后面下一个地址持续赋值,可以用地址+1的,因为p是int类型地址位,所以+1其实也是按1个int类型位进行相加的,到了下一个int类型的地址处~

然后,针对这块内存的访问,其实有两种方法,第一,int类型的指针,可以给前面加*取到对应地址的值,那么后面的就可以用*(p+i)依次取
第二:你可以结合数组和上面说的指针,去理解,数组其实就是内存的首地址,然后按特定类型下标去取,这i也可以用数组方式去取值~ 当然 同理上面应该可以用数组方式对申请的内存赋值~