怎么利用指针对数组赋值

怎样利用指针对数组赋值?在程序中定义一个带有10个元素的数组,当K1被按下之后,利用循环语句赋值0~9,再将此

怎样利用指针对数组赋值?
在程序中定义一个带有10个元素的数组,当K1被按下之后,利用循环语句赋值0~9,再将此数组的首地址传递到另一个函数中将其10个元素全部从串口中输出。
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P3^2;
void uart(void)
{
  SCON=0x40;
  PCON=0;
  REN=1;
  TMOD=0x20;
  TH1=0xfd;
  TL1=0xfd;
  TI=1;
  TR1=1;
}
void delayms(uint x)
{
  uint i;
  while(x--)
  {
    for(i=112;i>0;i--)
 {;}
  }
}
uint p_array(uint array[10])
{
  uint i;
  uint *p;
    
  for(i=0;i<10;i++)
  {
     p=&array[i];
 *p=i;
  }
return (array[10]);
}
void display(uint *p)
{
  uint j;
  printf("array[10]={");
  for(j=0;j<10;j++)
  {
printf("%d ",*(p+j));
  }
 printf("}\n");
}
void main(void)
{
  uint *p,array[10];
  uart();
  while(1)
  {
    printf("please press K1 to display the array!");
while(K1!=0);
delayms(500);
    if(K1==0)
  {
     while(K1==0);
 p=&array[0];
     p_array(array);
     p=&array[0];
     display(p);
   }
  }
}


以上是小女编写的程序,由于刚接触C,对于指针和数组更是生疏,还望各位大侠能给指点出程序中的错误,谢谢了!!!
[解决办法]
if (K1 == 0)都没有进入,是不是按的时间太短了?