刘加加在成长(C++语言学习中)

学习、工作、生活,这是三个问题。

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  38 随笔 :: 0 文章 :: 24 评论 :: 0 Trackbacks
   
    int arr[SIZE]={1,2,3,4};
    int index;
    for(index=0;index<SIZE;index++)
    {
        printf("arr[%d]=%d address=%p\n",index,arr[index],arr+index);
    }
   
    int *p=arr;
    for(index=0;index<SIZE;index++)
    {
        printf("*(p+%d)=%d     p+%d=%p\n",index,*(p+index),index,p+index);
    }
   
    getchar();
    return 0;

以上代码展示了读取数组中元素的两种方式,第一种是常规的使用数组下标来读取。第二种方法是使用指针来读取数组。

通过第一中方法中打印出来的内容,我们可以认识到,数组名其实就是这个数组的首地址,即:arr=数组首地址;arr+1:数组第二个元素的地址;arr+2:数组第三个元素的地址,以此类推。。。

第二种方法我们使用指针访问代替了数组下标访问,我们将 arr(即数组的首地址)赋值给了指针 *p,所以 p就等于arr的首地址,p+1就等于arr的二个元素的地址,那么*p就相当于了arr[0],*(p+1)就相当于arr[1]。

我们从中可以得出一个结论:数组标记实际上是一种变相使用指针的形式。
posted on 2008-05-16 21:30 刘加加 阅读(238) 评论(0)  编辑 收藏 引用 所属分类: 学习C语言

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理