关于C语言指针 的一个问题

int data[4],sum=0;//存放数值的数组
int *prc_data;//指针

for(int i=0;i<4;i++)
{

    printf("data[%d]=",i);
    scanf("%d",&data[i]);
}
for(i=0;i<4;data[i]++)
{
    *prc_data=&data[0];

    sum+=*prc_data;

    prc_data++;



}
printf("他的和等于%d\n",sum);
int pinjun;
pinjun=sum/4;
printf("他的平均值等于%d",pinjun);

出不来,有一个错误请各位看一下,谢啦,

 #include <stdio.h>
const int len = 4;
int main(int argc,char *argv[])
{
    int i, data[len]={0};
    int sum=0;
    int *p; 
    float average=0.0;

    for(i=0;i< len;++i){
        printf("data[%d]=",i);
        scanf("%d",&data[i]);
    }   

    for(i=0;i<len;i++){
        sum+=data[i];
    }   
    printf("sum=%d\n",sum);
    average = sum / len;
    printf("average=%f\n",average);
    return 0;
}

for(i=0;i<4;data[i]++)
这条语句中,i的值一直没变。变得一直是data[0]。所以相当于死循环。
还有你的程序第二个for语句就没有对的地方。

data[i]++改为i++,后面的for循环再修改

int data[4],sum=0;//存放数值的数组
int *prc_data;//指针
for(int i=0;i<4;i++)
{

    printf("data[%d]=",i);
    scanf("%d",&data[i]);
}
for(i=0;i<4;i++)
{
    prc_data=&data[0];
    sum+=*prc_data;
    prc_data++;

}
printf("他的和等于%d\n",sum);
int pinjun;
pinjun=sum/4;
printf("他的平均值等于%d",pinjun); 

这样子基本就可以成功运行了,但是看得出来题主基本功并不扎实,应该还有一段路要走。
其实,程序本身还很不灵活,在设计上存在着一些大问题,望题主以后再编程之时注意结构的设计。

第二个循环一直在取data[0]中的值

给题主讲下原因,在一个for循环中,对于循环的i是不能用到前一个for循环的i的,各自是独立的。这个是语法问题。