数组和指针的区别

心已入冬 提交于 2019-11-28 10:53:05

看例子:

int main( )
{
    char a[]="hello";
    char *p ;

    p="zhangning";
    printf("&p=%x\n",&p);
    printf("p=%x\n",p);
    printf("p=%s\n",p);

    printf("a=%x\n",a);
    printf("a=%s\n",a);
    printf("&a=%x\n",&a);
    return 0;
}

 

注意:1,对于数组,a指首元素地址,&a指整个数组(对象)的首地址,故a和&a值相等。

   2,a+1跨了一个sizeof(a[0])是第二个元素地址,但&a+1是跨了一个sizeof(a)的地址。

      3,a[1] = *(a+1),同样p[1] = *(p+1)。

   4,表示字符串时&a和a指向该字符串的首地址,p指向字符串首地址,&p没有意义

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!