数组与指针的区别

来源:互联网 发布:人工智能大会2017 编辑:程序博客网 时间:2024/06/07 13:34

运行下面的代码:


分析:

指针的地址与指针访问数据的地址是不一样的,上面的例子中,指针的地址是16382112,在16382112这个地址里面存放的是4337584,也就是字符串常量的地址。所以通过指针访问数据可以分为下面三个步骤:

1、  取得P的地址,提取存储于此处的指针(4337584);

2、  把下标所表示的偏移量与指针的值相加,产生一个地址。(4337584+0=4337584)

3、  访问上面这个地址,取得字符。(地址4337584处存放的内容为“h”)




如果变量P定义为一个数组类型,则访问的过程又不一样,先看实例:

#include<stdio.h>

int main(viod)

{

         charp[10] ="helloworld";

        

         printf("%c,%d\n",p[0],&p[0]);

         printf("%d,%d\n",p,&p);

        

        

         return0;

}


可以看出,定义的P直接指向数组的地址(也就是第一个元素的地址)



0 0
原创粉丝点击