c语言数组指针不太理解

书上有说在指针赋值的时候不加“*”,为什么这个程序里加了。

    这里不是对指针变量赋值,而是对指针变量指向的空间赋值

    pa指针在第一个for中变化了

    可以在一个for中完成,将第一个for改为

for(i=0;i<5;i++)
{
    *pa=i;
    printf("a[%d]=%d\n",i,*pa);
    pa++;
}

追问

谢谢回答。2,3两个问题理解了。第1个还是有点迷糊,*pa=i,当i=0的时候*pa的值是0,还是0所指向的内存空间?如果是指向0的内存空间为什么不用取地址符“&”呢?

追答

int a,*p;
p=&a;//指针变量p指向变量a
*p=0;//即a=0;

温馨提示:答案为网友推荐,仅供参考